// GENERATED — DO NOT EDIT

///|
/// [Upstream documentation](https://gnome.pages.gitlab.gnome.org/pango/Pango/struct.AttrFontFeatures.html).
pub type AttrFontFeatures

///|
pub(open) trait IAttrFontFeatures {
  fn as_attr_font_features(Self) -> AttrFontFeatures
}

///|
pub impl IAttrFontFeatures for AttrFontFeatures with fn as_attr_font_features(
  self,
) {
  self
}

///|
#borrow(features)
extern "c" fn moonbit_pango_attr_font_features_new(
  features : Bytes,
) -> Attribute = "moonbit_pango_attr_font_features_new"

///|
/// [Upstream documentation](https://gnome.pages.gitlab.gnome.org/pango/Pango/type_func.AttrFontFeatures.new.html).
pub fn AttrFontFeatures::new(features : String) -> Attribute {
  moonbit_pango_attr_font_features_new(@encoding/utf8.encode(features))
}

///|
/// [Upstream documentation](https://gnome.pages.gitlab.gnome.org/pango/Pango/struct.AttrFontFeatures.html).
#borrow(self_)
pub extern "c" fn AttrFontFeatures::get_attr(
  self_ : AttrFontFeatures,
) -> Attribute = "moonbit_pango_attr_font_features_attr_get"

///|
#borrow(self_)
extern "c" fn __ffi_moonbit_pango_attr_font_features_features_get(
  self_ : AttrFontFeatures,
) -> Bytes = "moonbit_pango_attr_font_features_features_get"

///|
/// [Upstream documentation](https://gnome.pages.gitlab.gnome.org/pango/Pango/struct.AttrFontFeatures.html).
pub fn AttrFontFeatures::get_features(self : AttrFontFeatures) -> String {
  @encoding/utf8.decode_lossy(
    __ffi_moonbit_pango_attr_font_features_features_get(self),
  )
}