oxi_types/
lib.rs

1//! Rust bindings to the C types used by Neovim's API.
2
3mod array;
4pub mod conversion;
5mod dictionary;
6mod error;
7mod function;
8mod kvec;
9mod non_owning;
10mod object;
11#[cfg(feature = "serde")]
12pub mod serde;
13mod string;
14
15pub use array::Array;
16pub use dictionary::Dictionary;
17pub use error::Error;
18pub use function::Function;
19pub use non_owning::NonOwning;
20pub use object::{Object, ObjectKind};
21pub use string::String;
22
23pub mod iter {
24    //! Iterators over [`Array`](crate::Array)s and
25    //! [`Dictionary`](crate::Dictionary)s.
26
27    pub use super::array::ArrayIterator;
28    pub use super::dictionary::{DictIter, DictIterMut, DictIterator};
29}
30
31// https://github.com/neovim/neovim/blob/v0.9.0/src/nvim/api/private/defs.h#L69
32#[doc(hidden)]
33pub type Boolean = bool;
34
35// https://github.com/neovim/neovim/blob/v0.9.0/src/nvim/api/private/defs.h#L70
36#[doc(hidden)]
37pub type Integer = i64;
38
39// https://github.com/neovim/neovim/blob/v0.9.0/src/nvim/api/private/defs.h#L71
40#[doc(hidden)]
41pub type Float = core::ffi::c_double;
42
43// https://github.com/neovim/neovim/blob/v0.9.0/src/nvim/types.h#L19
44#[doc(hidden)]
45pub type LuaRef = core::ffi::c_int;
46
47// https://github.com/neovim/neovim/blob/v0.9.0/src/nvim/types.h#L14
48#[allow(non_camel_case_types)]
49type handle_T = core::ffi::c_int;
50
51// https://github.com/neovim/neovim/blob/v0.9.0/src/nvim/api/private/defs.h#L84
52#[doc(hidden)]
53pub type BufHandle = handle_T;
54
55// https://github.com/neovim/neovim/blob/v0.9.0/src/nvim/api/private/defs.h#L85
56#[doc(hidden)]
57pub type WinHandle = handle_T;
58
59// https://github.com/neovim/neovim/blob/v0.9.0/src/nvim/api/private/defs.h#L86
60#[doc(hidden)]
61pub type TabHandle = handle_T;
62
63// https://github.com/neovim/neovim/blob/4f788f78f8b2d59a76b1a54a40af0c478eb3f929/src/nvim/api/private/defs.h#L127
64#[doc(hidden)]
65pub type HlGroupId = Integer;