synthizer/
delete_config.rs

1use crate::internal_prelude::*;
2
3#[derive(Debug, Clone)]
4pub struct DeleteBehaviorConfig {
5    pub(crate) cfg: syz_DeleteBehaviorConfig,
6}
7
8impl Default for DeleteBehaviorConfig {
9    fn default() -> DeleteBehaviorConfig {
10        let mut cfg = std::mem::MaybeUninit::<syz_DeleteBehaviorConfig>::uninit();
11        unsafe { syz_initDeleteBehaviorConfig(cfg.as_mut_ptr()) };
12        DeleteBehaviorConfig {
13            cfg: unsafe { cfg.assume_init() },
14        }
15    }
16}
17
18impl DeleteBehaviorConfig {
19    pub fn new() -> DeleteBehaviorConfig {
20        Default::default()
21    }
22
23    pub fn set_linger(&mut self, linger: bool) {
24        self.cfg.linger = linger as std::os::raw::c_int;
25    }
26
27    pub fn set_linger_timeout(&mut self, timeout: f64) {
28        self.cfg.linger_timeout = timeout;
29    }
30}
31
32///A builder for a `DeleteBehaviorConfig`.
33#[derive(Debug, Default)]
34pub struct DeleteBehaviorConfigBuilder {
35    cfg: DeleteBehaviorConfig,
36}
37
38impl DeleteBehaviorConfigBuilder {
39    pub fn new() -> DeleteBehaviorConfigBuilder {
40        Default::default()
41    }
42
43    pub fn linger(mut self, linger: bool) -> Self {
44        self.cfg.set_linger(linger);
45        self
46    }
47
48    pub fn linger_timeout(mut self, timeout: f64) -> Self {
49        self.cfg.set_linger_timeout(timeout);
50        self
51    }
52
53    pub fn build(self) -> DeleteBehaviorConfig {
54        self.cfg
55    }
56}