///|
/// 持有一个 native History。
///
/// C finalizer 负责释放 History。公开 API 无法显式关闭或检查该 owner。
priv type HistoryOwner

///|
/// 创建一个具有固定容量的 native History owner。
extern "C" fn HistoryOwner::new(capacity : Int) -> HistoryOwner = "readline_mbt_history_owner_new"

///|
/// 返回 History owner 中保存的稳定构造状态。
#borrow(self)
extern "C" fn HistoryOwner::status(self : HistoryOwner) -> Int = "readline_mbt_history_owner_status"

///|
/// 添加一条记录;输入缓冲区仅在本次调用期间被借用。
#borrow(self, line)
extern "C" fn HistoryOwner::add(self : HistoryOwner, line : Bytes) -> Int = "readline_mbt_history_owner_add"

///|
/// 清空所有记录;当前正被读取使用时返回 busy 状态。
#borrow(self)
extern "C" fn HistoryOwner::clear(self : HistoryOwner) -> Int = "readline_mbt_history_owner_clear"

///|
/// 返回当前记录条数,查询失败时返回负数。
#borrow(self)
extern "C" fn HistoryOwner::length(self : HistoryOwner) -> Int = "readline_mbt_history_owner_length"

///|
/// 从指定文件加载记录;路径缓冲区仅在本次调用期间被借用。
#borrow(self, path)
extern "C" fn HistoryOwner::load(self : HistoryOwner, path : Bytes) -> Int = "readline_mbt_history_owner_load"

///|
/// 将全部记录保存到指定文件;路径缓冲区仅在本次调用期间被借用。
#borrow(self, path)
extern "C" fn HistoryOwner::save(self : HistoryOwner, path : Bytes) -> Int = "readline_mbt_history_owner_save"

///|
/// 返回最近一次文件操作立即保存的 OS error code;零表示没有可靠的错误码。
#borrow(self)
extern "C" fn HistoryOwner::last_errno(self : HistoryOwner) -> Int = "readline_mbt_history_owner_last_errno"