MCPcopy Create free account
hub / github.com/SeaQL/FireDBG.for.Rust / parse_trace_config

Function parse_trace_config

command/src/main.rs:451–489  ·  view source on GitHub ↗
(
    config: &'a cfg::Config,
    workspace: &'a Workspace,
    executable_package: &'a Package,
)

Source from the content-addressed store, hash-verified

449}
450
451fn parse_trace_config<'a>(
452 config: &'a cfg::Config,
453 workspace: &'a Workspace,
454 executable_package: &'a Package,
455) -> Result<Vec<(&'a Package, cfg::Trace)>> {
456 // All package is set to trace none by default; except the executable package set to trace full
457 let mut trace_packages = workspace
458 .packages
459 .iter()
460 .fold(BTreeMap::new(), |mut acc, package| {
461 let trace = if package.name == executable_package.name {
462 cfg::Trace::Full
463 } else {
464 cfg::Trace::None
465 };
466 acc.insert(package.name.as_str(), (package, trace));
467 acc
468 });
469 // Parse trace config
470 for (package_name, member) in config.workspace.members.iter() {
471 if let Some(package) = workspace.find_package(package_name) {
472 trace_packages.insert(package.name.as_str(), (package, member.trace));
473 }
474 }
475 let values: Vec<_> = trace_packages.into_values().collect();
476
477 log::info!("trace_packages\n{:#?}", values);
478
479 for (package, trace) in values.iter() {
480 let package_name = package.name.as_str();
481 let trace_str = trace.to_str();
482 console::status(
483 "Tracing",
484 &format!("{package_name} = {{ trace = \"{trace_str}\" }}"),
485 );
486 }
487
488 Ok(values)
489}
490
491async fn cache_workspace(workspace: &Workspace) -> Result<()> {
492 let workspace_root_dir = &workspace.root_dir;

Callers 1

mainFunction · 0.85

Calls 6

statusFunction · 0.85
insertMethod · 0.80
find_packageMethod · 0.80
to_strMethod · 0.80
iterMethod · 0.45
as_strMethod · 0.45

Tested by

no test coverage detected