espforge_lib/resolver/strategies/
uart.rs

1use crate::register_strategy;
2use crate::resolver::strategies::{ParameterStrategy, ResolutionContext};
3use crate::resolver::strategies::utils::resolve_hardware_resource;
4use crate::manifest::ParameterType;
5use anyhow::Result;
6use espforge_macros::auto_register_param_strategy;
7use serde_yaml_ng::Value;
8
9#[derive(Default)]
10#[auto_register_param_strategy(ParameterType::UartRef)]
11pub struct UartStrategy;
12
13impl ParameterStrategy for UartStrategy {
14    fn resolve(&self, value: &Value, ctx: &ResolutionContext) -> Result<Value> {
15        resolve_hardware_resource(
16            value,
17            ctx,
18            |hw| &hw.uart,
19            |c| c.clone()
20        )
21    }
22}
23