pango/auto/attribute.rs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
// This file was generated by gir (https://github.com/gtk-rs/gir)
// from gir-files (https://github.com/gtk-rs/gir-files)
// DO NOT EDIT
use crate::ffi;
use glib::translate::*;
#[cfg(feature = "v1_44")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_44")))]
glib::wrapper! {
/// The [`Attribute`][crate::Attribute] structure represents the common portions of all
/// attributes.
///
/// Particular types of attributes include this structure as their initial
/// portion. The common portion of the attribute holds the range to which
/// the value in the type-specific part of the attribute applies and should
/// be initialized using `Pango::Attribute::init()`. By default, an attribute
/// will have an all-inclusive range of [0,`G_MAXUINT`].
#[derive(Debug, PartialOrd, Ord, Hash)]
pub struct Attribute(Boxed<ffi::PangoAttribute>);
match fn {
copy => |ptr| ffi::pango_attribute_copy(ptr),
free => |ptr| ffi::pango_attribute_destroy(ptr),
type_ => || ffi::pango_attribute_get_type(),
}
}
#[cfg(not(any(feature = "v1_44")))]
glib::wrapper! {
#[derive(Debug, PartialOrd, Ord, Hash)]
pub struct Attribute(Boxed<ffi::PangoAttribute>);
match fn {
copy => |ptr| ffi::pango_attribute_copy(ptr),
free => |ptr| ffi::pango_attribute_destroy(ptr),
}
}
impl Attribute {
#[doc(alias = "pango_attribute_equal")]
fn equal(&self, attr2: &Attribute) -> bool {
unsafe {
from_glib(ffi::pango_attribute_equal(
self.to_glib_none().0,
attr2.to_glib_none().0,
))
}
}
}
impl PartialEq for Attribute {
#[inline]
fn eq(&self, other: &Self) -> bool {
self.equal(other)
}
}
impl Eq for Attribute {}
unsafe impl Send for Attribute {}
unsafe impl Sync for Attribute {}