nvim_api/types/
statusline_infos.rs

1use nvim_types::{
2    conversion::{self, FromObject},
3    serde::Deserializer,
4    Object,
5};
6use serde::Deserialize;
7
8use super::StatuslineHighlightInfos;
9
10/// Statusline informations returned by
11/// [`eval_statusline`](crate::eval_statusline).
12#[non_exhaustive]
13#[derive(Clone, Debug, Eq, PartialEq, Hash, Deserialize)]
14pub struct StatuslineInfos {
15    /// Vector of highlight informations for the statusline populated if the
16    /// [`highlights`](crate::opts::EvalStatuslineOptsBuilder::highlights)
17    /// field of  was set to `true`.
18    #[serde(default)]
19    pub highlights: Vec<StatuslineHighlightInfos>,
20
21    /// Characters displayed in the statusline.
22    pub str: String,
23
24    /// Display width of the statusline.
25    pub width: u32,
26}
27
28impl FromObject for StatuslineInfos {
29    fn from_object(obj: Object) -> Result<Self, conversion::Error> {
30        Self::deserialize(Deserializer::new(obj)).map_err(Into::into)
31    }
32}