nvim_oxi_api/
win_config.rs1use types as nvim;
2
3use crate::Result;
4use crate::choose;
5use crate::ffi::win_config::*;
6use crate::types::*;
7use crate::{Buffer, Window};
8
9pub fn open_win(
15 buf: &Buffer,
16 enter: bool,
17 config: &WindowConfig,
18) -> Result<Window> {
19 let mut err = nvim::Error::new();
20 let handle =
21 unsafe { nvim_open_win(buf.0, enter, &config.into(), &mut err) };
22 choose!(err, Ok(handle.into()))
23}
24
25impl Window {
26 pub fn get_config(&self) -> Result<WindowConfig> {
32 let mut err = nvim::Error::new();
33
34 let out =
35 unsafe { nvim_win_get_config(self.0, types::arena(), &mut err) };
36
37 let out = WindowConfig::try_from(out)?;
38
39 choose!(err, Ok(out))
40 }
41
42 pub fn set_config(&mut self, config: &WindowConfig) -> Result<()> {
48 let mut err = nvim::Error::new();
49 unsafe { nvim_win_set_config(self.0, &config.into(), &mut err) };
50 choose!(err, ())
51 }
52}