use types::Object;
use crate::Window;
#[derive(Clone, Debug, Default)]
#[repr(C)]
pub struct EvalStatuslineOpts {
winid: Object,
maxwidth: Object,
fillchar: Object,
highlights: Object,
use_tabline: Object,
use_winbar: Object,
use_statuscol_lnum: Object,
}
impl EvalStatuslineOpts {
#[inline(always)]
pub fn builder() -> EvalStatuslineOptsBuilder {
EvalStatuslineOptsBuilder::default()
}
}
#[derive(Clone, Default)]
pub struct EvalStatuslineOptsBuilder(EvalStatuslineOpts);
impl EvalStatuslineOptsBuilder {
#[inline]
pub fn fillchar(&mut self, fillchar: char) -> &mut Self {
self.0.fillchar = fillchar.into();
self
}
#[inline]
pub fn highlights(&mut self, highlights: bool) -> &mut Self {
self.0.highlights = highlights.into();
self
}
#[inline]
pub fn maxwidth(&mut self, maxwidth: u32) -> &mut Self {
self.0.maxwidth = maxwidth.into();
self
}
#[inline]
pub fn use_statuscol_lnum(
&mut self,
use_statuscol_lnum: bool,
) -> &mut Self {
self.0.use_statuscol_lnum = use_statuscol_lnum.into();
self
}
#[inline]
pub fn use_tabline(&mut self, use_tabline: bool) -> &mut Self {
self.0.use_tabline = use_tabline.into();
self
}
#[inline]
pub fn use_winbar(&mut self, use_winbar: bool) -> &mut Self {
self.0.use_winbar = use_winbar.into();
self
}
#[inline]
pub fn window(&mut self, window: Window) -> &mut Self {
self.0.winid = window.into();
self
}
#[inline]
pub fn build(&mut self) -> EvalStatuslineOpts {
std::mem::take(&mut self.0)
}
}