use phlow::ViewInstance;
use string_box::StringBox;
use value_box::{BorrowedPtr, OwnedPtr, ReturnBoxerResult};
#[unsafe(no_mangle)]
pub extern "C" fn phlow_view_instance_get_type(
view_instance: BorrowedPtr<Box<dyn ViewInstance>>,
mut view_type: BorrowedPtr<StringBox>,
) {
view_instance
.with_ref(|view_instance| {
view_type.with_mut_ok(|view_type| {
view_type.set_string(view_instance.get_view_type().to_string())
})
})
.log();
}
#[unsafe(no_mangle)]
pub extern "C" fn phlow_view_instance_get_title(
view_instance: BorrowedPtr<Box<dyn ViewInstance>>,
mut view_title: BorrowedPtr<StringBox>,
) {
view_instance
.with_ref(|view_instance| {
view_title.with_mut_ok(|view_title| {
view_title.set_string(view_instance.get_title().to_string())
})
})
.log();
}
#[unsafe(no_mangle)]
pub extern "C" fn phlow_view_instance_get_priority(
view_instance: BorrowedPtr<Box<dyn ViewInstance>>,
) -> usize {
view_instance
.with_ref_ok(|view_instance| view_instance.get_priority())
.or_log(0)
}
#[unsafe(no_mangle)]
pub extern "C" fn phlow_view_instance_drop(view_instance: OwnedPtr<Box<dyn ViewInstance>>) {
drop(view_instance);
}