1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
//! Rust bindings to the C types used by Neovim's API.

mod array;
pub mod conversion;
mod dictionary;
mod error;
mod function;
mod kvec;
mod non_owning;
mod object;
#[cfg(feature = "serde")]
pub mod serde;
mod string;

pub use array::Array;
pub use dictionary::Dictionary;
pub use error::Error;
pub use function::Function;
pub use non_owning::NonOwning;
pub use object::{Object, ObjectKind};
pub use string::String;

pub mod iter {
    //! Iterators over [`Array`](crate::Array)s and
    //! [`Dictionary`](crate::Dictionary)s.

    pub use super::array::ArrayIterator;
    pub use super::dictionary::{DictIter, DictIterMut, DictIterator};
}

// https://github.com/neovim/neovim/blob/v0.9.0/src/nvim/api/private/defs.h#L69
#[doc(hidden)]
pub type Boolean = bool;

// https://github.com/neovim/neovim/blob/v0.9.0/src/nvim/api/private/defs.h#L70
#[doc(hidden)]
pub type Integer = i64;

// https://github.com/neovim/neovim/blob/v0.9.0/src/nvim/api/private/defs.h#L71
#[doc(hidden)]
pub type Float = core::ffi::c_double;

// https://github.com/neovim/neovim/blob/v0.9.0/src/nvim/types.h#L19
#[doc(hidden)]
pub type LuaRef = core::ffi::c_int;

// https://github.com/neovim/neovim/blob/v0.9.0/src/nvim/types.h#L14
#[allow(non_camel_case_types)]
type handle_T = core::ffi::c_int;

// https://github.com/neovim/neovim/blob/v0.9.0/src/nvim/api/private/defs.h#L84
#[doc(hidden)]
pub type BufHandle = handle_T;

// https://github.com/neovim/neovim/blob/v0.9.0/src/nvim/api/private/defs.h#L85
#[doc(hidden)]
pub type WinHandle = handle_T;

// https://github.com/neovim/neovim/blob/v0.9.0/src/nvim/api/private/defs.h#L86
#[doc(hidden)]
pub type TabHandle = handle_T;

// https://github.com/neovim/neovim/blob/4f788f78f8b2d59a76b1a54a40af0c478eb3f929/src/nvim/api/private/defs.h#L127
#[doc(hidden)]
pub type HlGroupId = Integer;