///|
#borrow(self_, result)
extern "c" fn moonbit_pango_analysis_get_extra_attrs(
  self_ : Analysis,
  result : Ref[FixedArray[Attribute]],
) -> Unit = "moonbit_pango_analysis_get_extra_attrs"

///|
/// Returns independent copies of the non-shaping attributes attached to this
/// analyzed run, such as foreground colors and alpha values.
///
/// The returned attributes remain valid after the layout run that supplied
/// this `Analysis` is released.
pub fn Analysis::get_extra_attrs(self : Analysis) -> Array[Attribute] {
  let result : Ref[FixedArray[Attribute]] = Ref([])
  moonbit_pango_analysis_get_extra_attrs(self, result)
  Array::from_fixed_array(result.val)
}

///|
/// Returns the semantic kind of this attribute.
#borrow(self_)
pub extern "c" fn Attribute::get_type(self_ : Attribute) -> AttrType = "moonbit_pango_attribute_get_type"