taitank-safe 0.0.2

taitank in safe rust
Documentation
#[cxx::bridge]
pub mod ffi {

    unsafe extern "C++" {
        include!("taitank-safe/include/safe.h");

        type TaitankSafeNode;
        fn node_create() -> UniquePtr<TaitankSafeNode>;
        fn set_width(node: &mut UniquePtr<TaitankSafeNode>, width: f64);
        fn set_height(node: &mut UniquePtr<TaitankSafeNode>, height: f64);
        fn set_direction(node: &mut UniquePtr<TaitankSafeNode>, direction: i32);
        fn set_flex(node: &mut UniquePtr<TaitankSafeNode>, flex: f64);
        fn set_flex_grow(node: &mut UniquePtr<TaitankSafeNode>, flex_grow: f64);
        fn set_flex_shrink(node: &mut UniquePtr<TaitankSafeNode>, flex_shrink: f64);
        fn set_flex_basis(node: &mut UniquePtr<TaitankSafeNode>, flex_basis: f64);
        fn set_flex_direction(node: &mut UniquePtr<TaitankSafeNode>, flex_direction: i32);
        fn set_flex_wrap(node: &mut UniquePtr<TaitankSafeNode>, flex_wrap_node: i32);
        fn set_align_items(node: &mut UniquePtr<TaitankSafeNode>, flex_align: i32);
        fn set_min_width(node: &mut UniquePtr<TaitankSafeNode>, min_width: f64);
        fn set_max_height(node: &mut UniquePtr<TaitankSafeNode>, max_height: f64);
        fn set_margin(node: &mut UniquePtr<TaitankSafeNode>, css_direction: i32, value: f64);
        fn set_align_content(node: &mut UniquePtr<TaitankSafeNode>, flex_align: i32);
        fn set_justify_content(node: &mut UniquePtr<TaitankSafeNode>, flex_align: i32);
        fn insert_child(
            node: &mut UniquePtr<TaitankSafeNode>,
            child: &mut UniquePtr<TaitankSafeNode>,
            index: i32,
        );
        fn do_layout(
            node: &mut UniquePtr<TaitankSafeNode>,
            parent_width: f64,
            parent_height: f64,
            direction: i32,
        );
        fn get_width(node: &UniquePtr<TaitankSafeNode>) -> f64;
        fn get_height(node: &UniquePtr<TaitankSafeNode>) -> f64;
        fn get_left(node: &UniquePtr<TaitankSafeNode>) -> f64;
        fn get_top(node: &UniquePtr<TaitankSafeNode>) -> f64;
        fn print(node: &UniquePtr<TaitankSafeNode>);
    }
}