MCPcopy Create free account
hub / github.com/ecto/muni / load

Method load

depot/mapper/src/main.rs:150–189  ·  view source on GitHub ↗

Load state from disk

(&mut self)

Source from the content-addressed store, hash-verified

148
149 /// Load state from disk
150 async fn load(&mut self) -> Result<(), MapperError> {
151 // Load sessions database
152 let sessions_db_path = self.maps_dir.join("sessions.json");
153 if sessions_db_path.exists() {
154 let json = tokio::fs::read_to_string(&sessions_db_path).await?;
155 let sessions: Vec<Session> = serde_json::from_str(&json)?;
156 for session in sessions {
157 self.sessions.insert(session.id, session);
158 }
159 info!("Loaded {} sessions from database", self.sessions.len());
160 }
161
162 // Load skipped sessions
163 let skipped_path = self.maps_dir.join("skipped_sessions.json");
164 if skipped_path.exists() {
165 let json = tokio::fs::read_to_string(&skipped_path).await?;
166 let paths: Vec<PathBuf> = serde_json::from_str(&json)?;
167 self.skipped_sessions = paths.into_iter().collect();
168 info!("Loaded {} skipped sessions", self.skipped_sessions.len());
169 }
170
171 // Load map manifests
172 let index_path = self.maps_dir.join("index.json");
173 if index_path.exists() {
174 let json = tokio::fs::read_to_string(&index_path).await?;
175 let index: MapIndex = serde_json::from_str(&json)?;
176
177 for entry in index.maps {
178 let manifest_path = self.maps_dir.join(&entry.name).join("manifest.json");
179 if manifest_path.exists() {
180 let json = tokio::fs::read_to_string(&manifest_path).await?;
181 let manifest: MapManifest = serde_json::from_str(&json)?;
182 self.maps.insert(manifest.id, manifest);
183 }
184 }
185 info!("Loaded {} maps from index", self.maps.len());
186 }
187
188 Ok(())
189 }
190}
191
192type SharedState = Arc<RwLock<MapperState>>;

Callers 1

mainFunction · 0.45

Calls 1

insertMethod · 0.80

Tested by

no test coverage detected