nvim_api/types/
command_nargs.rs

1use nvim_types::{
2    conversion::{self, ToObject},
3    serde::Serializer,
4    Object,
5};
6use serde::{Deserialize, Serialize};
7
8/// Number of arguments accepted by a command.
9#[non_exhaustive]
10#[derive(
11    Copy, Clone, Debug, Default, Eq, PartialEq, Hash, Serialize, Deserialize,
12)]
13pub enum CommandNArgs {
14    #[default]
15    #[serde(rename = "0")]
16    Zero,
17
18    #[serde(rename = "1")]
19    One,
20
21    #[serde(rename = "?")]
22    ZeroOrOne,
23
24    #[serde(rename = "+")]
25    OneOrMore,
26
27    #[serde(rename = "*")]
28    Any,
29}
30
31impl ToObject for CommandNArgs {
32    fn to_object(self) -> Result<Object, conversion::Error> {
33        self.serialize(Serializer::new()).map_err(Into::into)
34    }
35}