nvim_api/types/
command_modifiers.rs1use 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#[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}