pub trait InterfaceFactory: Send + Sync {
// Required methods
fn type_name(&self) -> &str;
fn parse_config(
&self,
name: &str,
id: InterfaceId,
params: &HashMap<String, String>,
) -> Result<Box<dyn InterfaceConfigData>, String>;
fn start(
&self,
config: Box<dyn InterfaceConfigData>,
ctx: StartContext,
) -> Result<StartResult>;
// Provided method
fn default_ifac_size(&self) -> usize { ... }
}Expand description
Factory that can parse config and start an interface type.
Required Methods§
Sourcefn parse_config(
&self,
name: &str,
id: InterfaceId,
params: &HashMap<String, String>,
) -> Result<Box<dyn InterfaceConfigData>, String>
fn parse_config( &self, name: &str, id: InterfaceId, params: &HashMap<String, String>, ) -> Result<Box<dyn InterfaceConfigData>, String>
Parse from key-value params (config file or external).
Sourcefn start(
&self,
config: Box<dyn InterfaceConfigData>,
ctx: StartContext,
) -> Result<StartResult>
fn start( &self, config: Box<dyn InterfaceConfigData>, ctx: StartContext, ) -> Result<StartResult>
Start the interface from parsed config.
Provided Methods§
Sourcefn default_ifac_size(&self) -> usize
fn default_ifac_size(&self) -> usize
Default IFAC size (bytes). 8 for serial/kiss/rnode, 16 for others.