nvim_api/opts/
buf_delete.rs

1use derive_builder::Builder;
2use nvim_types::Dictionary;
3
4/// Options passed to [`Buffer::delete`](crate::Buffer::delete).
5#[derive(Clone, Debug, Default, Builder)]
6#[builder(default, build_fn(private, name = "fallible_build"))]
7pub struct BufDeleteOpts {
8    #[builder(setter(strip_option))]
9    /// Force deletion ignoring unsaved changes.
10    force: Option<bool>,
11
12    #[builder(setter(strip_option))]
13    /// If `true` the buffer will only be unloaded, not deleted.
14    unload: Option<bool>,
15}
16
17impl BufDeleteOpts {
18    #[inline(always)]
19    pub fn builder() -> BufDeleteOptsBuilder {
20        BufDeleteOptsBuilder::default()
21    }
22}
23
24impl BufDeleteOptsBuilder {
25    pub fn build(&mut self) -> BufDeleteOpts {
26        self.fallible_build().expect("never fails, all fields have defaults")
27    }
28}
29
30impl From<&BufDeleteOpts> for Dictionary {
31    fn from(opts: &BufDeleteOpts) -> Self {
32        Self::from_iter([("force", opts.force), ("unload", opts.unload)])
33    }
34}