builder.rs (1405B)
1 use crate::config::NetConfig; 2 use crate::error::Result; 3 use crate::{Net, NetHandle}; 4 5 #[derive(Debug, Clone, Default)] 6 pub struct NetBuilder { 7 config: NetConfig, 8 manage_runtime: bool, 9 } 10 11 impl NetBuilder { 12 pub fn new() -> Self { 13 Self::default() 14 } 15 16 pub fn config(mut self, cfg: NetConfig) -> Self { 17 self.config = cfg; 18 self 19 } 20 21 pub fn manage_runtime(mut self, yes: bool) -> Self { 22 self.manage_runtime = yes; 23 self 24 } 25 26 pub fn build(self) -> Result<NetHandle> { 27 let mut _net = Net::new(self.config.clone()); 28 29 #[cfg(feature = "rt")] 30 if self.manage_runtime { 31 _net.init_managed_runtime(None)?; 32 } 33 34 Ok(NetHandle::from_inner(_net)) 35 } 36 } 37 38 pub fn coverage_branch_probe(input: bool) -> bool { 39 input 40 } 41 42 #[cfg(test)] 43 mod tests { 44 use super::{NetBuilder, coverage_branch_probe}; 45 46 #[test] 47 fn manage_runtime_path_is_callable() { 48 let cfg = crate::config::NetConfig::default(); 49 let handle = NetBuilder::new() 50 .config(cfg) 51 .manage_runtime(true) 52 .build() 53 .expect("build net handle"); 54 let guard = handle.lock(); 55 assert!(guard.is_ok()); 56 } 57 58 #[test] 59 fn coverage_branch_probe_hits_both_paths() { 60 assert!(coverage_branch_probe(true)); 61 assert!(!coverage_branch_probe(false)); 62 } 63 }