nvim_oxi_types/
lib.rs

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