lib

Core libraries for Radroots
git clone https://radroots.dev/git/lib.git
Log | Files | Refs | README | LICENSE

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 }