nvim_oxi_api/opts/
cmd.rs

1#[cfg(feature = "neovim-0-10")] // On 0.10 and nightly.
2use types::Boolean;
3#[cfg(not(feature = "neovim-0-10"))] // 0nly on 0.9.
4use types::Object;
5
6/// Options passed to [cmd](crate::cmd).
7#[derive(Clone, Debug, Default)]
8#[repr(C)]
9pub struct CmdOpts {
10    #[cfg(not(feature = "neovim-0-10"))] // 0nly on 0.9.
11    output: Object,
12    #[cfg(feature = "neovim-0-10")] // On 0.10 and nightly.
13    output: Boolean,
14}
15
16impl CmdOpts {
17    #[inline(always)]
18    pub fn builder() -> CmdOptsBuilder {
19        CmdOptsBuilder::default()
20    }
21}
22
23#[derive(Clone, Default)]
24pub struct CmdOptsBuilder(CmdOpts);
25
26impl CmdOptsBuilder {
27    #[inline]
28    pub fn output(&mut self, output: bool) -> &mut Self {
29        #[cfg(not(feature = "neovim-0-10"))] // 0nly on 0.9.
30        {
31            self.0.output = output.into();
32        }
33        #[cfg(feature = "neovim-0-10")] // On 0.10 and nightly.
34        {
35            self.0.output = output;
36        }
37        self
38    }
39
40    #[inline]
41    pub fn build(&mut self) -> CmdOpts {
42        std::mem::take(&mut self.0)
43    }
44}