1#[cfg(feature = "neovim-0-10")] use types::Boolean;
3#[cfg(not(feature = "neovim-0-10"))] use types::Object;
5
6#[derive(Clone, Debug, Default)]
8#[repr(C)]
9pub struct CmdOpts {
10 #[cfg(not(feature = "neovim-0-10"))] output: Object,
12 #[cfg(feature = "neovim-0-10")] 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"))] {
31 self.0.output = output.into();
32 }
33 #[cfg(feature = "neovim-0-10")] {
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}