use rmpv::Value;
use crate::api::*;
use crate::error::Error;
use crate::value_vec;
impl Tabpage {
pub fn list_wins(&mut self) -> Result<Vec<Window>, Error> {
let mut session = self.session.lock().unwrap();
let ret = session.call("nvim_tabpage_list_wins", value_vec!(self.data))?;
Ok(ret
.as_array()
.unwrap()
.iter()
.map(|x| Window {
data: x.clone(),
session: self.session.clone(),
})
.collect())
}
pub fn get_var(&mut self, name: String) -> Result<Value, Error> {
let mut session = self.session.lock().unwrap();
let ret = session.call("nvim_tabpage_get_var", value_vec!(self.data, name))?;
Ok(ret.to_owned())
}
pub fn set_var(&mut self, name: String, value: Value) -> Result<(), Error> {
let mut session = self.session.lock().unwrap();
session.call("nvim_tabpage_set_var", value_vec!(self.data, name, value))?;
Ok(())
}
pub fn del_var(&mut self, name: String) -> Result<(), Error> {
let mut session = self.session.lock().unwrap();
session.call("nvim_tabpage_del_var", value_vec!(self.data, name))?;
Ok(())
}
pub fn get_win(&mut self) -> Result<Window, Error> {
let mut session = self.session.lock().unwrap();
let ret = session.call("nvim_tabpage_get_win", value_vec!(self.data))?;
Ok(Window {
data: ret.clone(),
session: self.session.clone(),
})
}
pub fn get_number(&mut self) -> Result<i64, Error> {
let mut session = self.session.lock().unwrap();
let ret = session.call("nvim_tabpage_get_number", value_vec!(self.data))?;
Ok(ret.as_i64().unwrap())
}
pub fn is_valid(&mut self) -> Result<bool, Error> {
let mut session = self.session.lock().unwrap();
let ret = session.call("nvim_tabpage_is_valid", value_vec!(self.data))?;
Ok(ret.as_bool().unwrap())
}
}