| {{>copyright comment="//"}} | |
| use fdf_component::{Driver, DriverContext, DriverError, Node, driver_register}; | |
| use log::info; | |
| struct {{pascal_case PROJECT_NAME}} { | |
| _node: Node, | |
| } | |
| driver_register!({{pascal_case PROJECT_NAME}}); | |
| impl Driver for {{pascal_case PROJECT_NAME}} { | |
| const NAME: &str = "{{snake_case PROJECT_NAME}}"; | |
| async fn start(mut context: DriverContext) -> Result<Self, DriverError> { | |
| info!("{{pascal_case PROJECT_NAME}}::start()"); | |
| let node = context.take_node()?; | |
| Ok(Self { _node: node }) | |
| } | |
| async fn stop(&self) { | |
| info!("{{pascal_case PROJECT_NAME}}::stop()"); | |
| } | |
| } | |
| #[cfg(test)] | |
| mod tests { | |
| use super::*; | |
| use fdf_component::testing::harness::TestHarness; | |
| #[fuchsia::test] | |
| async fn test_driver_start() { | |
| let mut harness = TestHarness::<{{pascal_case PROJECT_NAME}}>::new(); | |
| let started_driver = harness.start_driver().await.unwrap(); | |
| // Verify driver started successfully | |
| assert!(true); | |
| started_driver.stop_driver().await; | |
| } | |
| } |