nvim_api/types/
command_modifiers.rs

1use nvim_types::{
2    conversion::{self, ToObject},
3    serde::Serializer,
4    Object,
5};
6use serde::{Deserialize, Serialize};
7
8use super::SplitModifier;
9use crate::serde_utils as utils;
10
11/// See `:h command-modifiers` for more infos.
12#[non_exhaustive]
13#[derive(
14    Copy, Clone, Debug, Default, Eq, PartialEq, Hash, Deserialize, Serialize,
15)]
16pub struct CommandModifiers {
17    pub browse: bool,
18    pub confirm: bool,
19    pub emsg_silent: bool,
20    pub hide: bool,
21    pub keepalt: bool,
22    pub keepjumps: bool,
23    pub keepmarks: bool,
24    pub keeppatterns: bool,
25    pub lockmarks: bool,
26    pub noautocmd: bool,
27    pub noswapfile: bool,
28    pub sandbox: bool,
29    pub silent: bool,
30    #[serde(deserialize_with = "utils::empty_string_is_none")]
31    pub split: Option<SplitModifier>,
32    pub tab: i32,
33    pub verbose: i32,
34    pub vertical: bool,
35}
36
37impl ToObject for CommandModifiers {
38    fn to_object(self) -> Result<Object, conversion::Error> {
39        self.serialize(Serializer::new()).map_err(Into::into)
40    }
41}