use super::core::run_topology_read;
use crate::{
nns::NnsCommandError,
nns::topology::{commands as topology_commands, options as topology_options, report},
};
use std::ffi::OsString;
macro_rules! topology_read_runner {
(
$name:ident,
$options:ty,
$request:ty,
$report:ty,
$usage:path,
$build:path,
$render:path
) => {
pub(in crate::nns::topology::run) fn $name(
args: Vec<OsString>,
) -> Result<(), NnsCommandError> {
run_topology_read::<$options, $request, $report>(args, $usage, $build, $render)
}
};
}
topology_read_runner!(
run_topology_summary,
topology_options::TopologySummaryOptions,
report::NnsTopologySummaryRequest,
report::NnsTopologySummaryReport,
topology_commands::topology_summary_usage,
report::build_nns_topology_summary_report,
report::nns_topology_summary_report_text
);
topology_read_runner!(
run_topology_coverage,
topology_options::TopologyCoverageOptions,
report::NnsTopologyCoverageRequest,
report::NnsTopologyCoverageReport,
topology_commands::topology_coverage_usage,
report::build_nns_topology_coverage_report,
report::nns_topology_coverage_report_text
);
topology_read_runner!(
run_topology_versions,
topology_options::TopologyVersionsOptions,
report::NnsTopologyVersionsRequest,
report::NnsTopologyVersionsReport,
topology_commands::topology_versions_usage,
report::build_nns_topology_versions_report,
report::nns_topology_versions_report_text
);
topology_read_runner!(
run_topology_health,
topology_options::TopologyHealthOptions,
report::NnsTopologyHealthRequest,
report::NnsTopologyHealthReport,
topology_commands::topology_health_usage,
report::build_nns_topology_health_report,
report::nns_topology_health_report_text
);
topology_read_runner!(
run_topology_gaps,
topology_options::TopologyGapsOptions,
report::NnsTopologyGapsRequest,
report::NnsTopologyGapsReport,
topology_commands::topology_gaps_usage,
report::build_nns_topology_gaps_report,
report::nns_topology_gaps_report_text
);
topology_read_runner!(
run_topology_capacity,
topology_options::TopologyCapacityOptions,
report::NnsTopologyCapacityRequest,
report::NnsTopologyCapacityReport,
topology_commands::topology_capacity_usage,
report::build_nns_topology_capacity_report,
report::nns_topology_capacity_report_text
);
topology_read_runner!(
run_topology_regions,
topology_options::TopologyRegionsOptions,
report::NnsTopologyRegionsRequest,
report::NnsTopologyRegionsReport,
topology_commands::topology_regions_usage,
report::build_nns_topology_regions_report,
report::nns_topology_regions_report_text
);
topology_read_runner!(
run_topology_providers,
topology_options::TopologyProvidersOptions,
report::NnsTopologyProvidersRequest,
report::NnsTopologyProvidersReport,
topology_commands::topology_providers_usage,
report::build_nns_topology_providers_report,
report::nns_topology_providers_report_text
);