MCPcopy Create free account
hub / github.com/ScriptedAlchemy/tracedecay / process_request

Function process_request

src/extraction_worker.rs:130–161  ·  view source on GitHub ↗
(registry: &LanguageRegistry, req: &ExtractRequest)

Source from the content-addressed store, hash-verified

128}
129
130fn process_request(registry: &LanguageRegistry, req: &ExtractRequest) -> ExtractResponse {
131 let abs_path = req.project_root.join(&req.file_path);
132 let Ok(source) = sync::read_source_file(&abs_path) else {
133 return ExtractResponse {
134 file_path: req.file_path.clone(),
135 data: None,
136 };
137 };
138 let Some(extractor) = registry.extractor_for_file(&req.file_path) else {
139 return ExtractResponse {
140 file_path: req.file_path.clone(),
141 data: None,
142 };
143 };
144
145 let mut result = extractor.extract(&req.file_path, &source);
146 result.sanitize();
147 let content_hash = sync::content_hash(&source);
148 let size = source.len() as u64;
149 let mtime =
150 sync::file_stat(&abs_path).map_or_else(crate::tracedecay::current_timestamp, |(m, _)| m);
151
152 ExtractResponse {
153 file_path: req.file_path.clone(),
154 data: Some(ExtractData {
155 result,
156 content_hash,
157 size,
158 mtime,
159 }),
160 }
161}
162
163// =============================================================================
164// Pool side — runs inside the parent

Callers 1

worker_mainFunction · 0.85

Calls 6

read_source_fileFunction · 0.85
content_hashFunction · 0.85
file_statFunction · 0.85
extractor_for_fileMethod · 0.80
sanitizeMethod · 0.80
extractMethod · 0.45

Tested by

no test coverage detected