json-glib 0.1.0

Rust bindings for the Glib Json library
Documentation
// This file was generated by gir (https://github.com/gtk-rs/gir)
// from gir
// from gtk-girs (https://github.com/gtk-rs/gir-files)
// DO NOT EDIT

use crate::{ffi,Node};
use glib::{prelude::*,translate::*};

glib::wrapper! {
    #[doc(alias = "JsonSerializable")]
    pub struct Serializable(Interface<ffi::JsonSerializable, ffi::JsonSerializableIface>);

    match fn {
        type_ => || ffi::json_serializable_get_type(),
    }
}

impl Serializable {
        pub const NONE: Option<&'static Serializable> = None;
    
}

pub trait SerializableExt: IsA<Serializable> + 'static {
    #[doc(alias = "json_serializable_default_deserialize_property")]
    fn default_deserialize_property(&self, property_name: &str, value: &mut glib::Value, pspec: impl AsRef<glib::ParamSpec>, property_node: &Node) -> bool {
        unsafe {
            from_glib(ffi::json_serializable_default_deserialize_property(self.as_ref().to_glib_none().0, property_name.to_glib_none().0, value.to_glib_none_mut().0, pspec.as_ref().to_glib_none().0, property_node.to_glib_none().0))
        }
    }

    #[doc(alias = "json_serializable_default_serialize_property")]
    fn default_serialize_property(&self, property_name: &str, value: &glib::Value, pspec: impl AsRef<glib::ParamSpec>) -> Option<Node> {
        unsafe {
            from_glib_full(ffi::json_serializable_default_serialize_property(self.as_ref().to_glib_none().0, property_name.to_glib_none().0, value.to_glib_none().0, pspec.as_ref().to_glib_none().0))
        }
    }

    #[doc(alias = "json_serializable_deserialize_property")]
    fn deserialize_property(&self, property_name: &str, pspec: impl AsRef<glib::ParamSpec>, property_node: &Node) -> Option<glib::Value> {
        unsafe {
            let mut value = glib::Value::uninitialized();
            let ret = from_glib(ffi::json_serializable_deserialize_property(self.as_ref().to_glib_none().0, property_name.to_glib_none().0, value.to_glib_none_mut().0, pspec.as_ref().to_glib_none().0, property_node.to_glib_none().0));
            if ret { Some(value) } else { None }
        }
    }

    #[doc(alias = "json_serializable_find_property")]
    fn find_property(&self, name: &str) -> Option<glib::ParamSpec> {
        unsafe {
            from_glib_none(ffi::json_serializable_find_property(self.as_ref().to_glib_none().0, name.to_glib_none().0))
        }
    }

    #[doc(alias = "json_serializable_get_property")]
    #[doc(alias = "get_property")]
    fn property(&self, pspec: impl AsRef<glib::ParamSpec>) -> glib::Value {
        unsafe {
            let mut value = glib::Value::uninitialized();
            ffi::json_serializable_get_property(self.as_ref().to_glib_none().0, pspec.as_ref().to_glib_none().0, value.to_glib_none_mut().0);
            value
        }
    }

    #[doc(alias = "json_serializable_list_properties")]
    fn list_properties(&self) -> Vec<glib::ParamSpec> {
        unsafe {
            let mut n_pspecs = std::mem::MaybeUninit::uninit();
            let ret = FromGlibContainer::from_glib_container_num(ffi::json_serializable_list_properties(self.as_ref().to_glib_none().0, n_pspecs.as_mut_ptr()), n_pspecs.assume_init() as _);
            ret
        }
    }

    #[doc(alias = "json_serializable_serialize_property")]
    fn serialize_property(&self, property_name: &str, value: &glib::Value, pspec: impl AsRef<glib::ParamSpec>) -> Option<Node> {
        unsafe {
            from_glib_full(ffi::json_serializable_serialize_property(self.as_ref().to_glib_none().0, property_name.to_glib_none().0, value.to_glib_none().0, pspec.as_ref().to_glib_none().0))
        }
    }

    #[doc(alias = "json_serializable_set_property")]
    fn set_property(&self, pspec: impl AsRef<glib::ParamSpec>, value: &glib::Value) {
        unsafe {
            ffi::json_serializable_set_property(self.as_ref().to_glib_none().0, pspec.as_ref().to_glib_none().0, value.to_glib_none().0);
        }
    }
}

impl<O: IsA<Serializable>> SerializableExt for O {}