espforge_lib/resolver/strategies/
spi.rs1use 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