espforge_lib/resolver/strategies/
spi.rs

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