### Struct

# PangoOT RulesetDescription

since: 1.18

#### Description [src]

    struct PangoOTRulesetDescription {
      PangoScript script;
      PangoLanguage* language;
      const PangoOTFeatureMap* static_gsub_features;
      guint n_static_gsub_features;
      const PangoOTFeatureMap* static_gpos_features;
      guint n_static_gpos_features;
      const PangoOTFeatureMap* other_features;
      guint n_other_features;
    }

The `PangoOTRuleset` structure holds all the information needed to build a complete `PangoOTRuleset` from an OpenType font. The main use of this struct is to act as the key for a per-font hash of rulesets. The user populates a ruleset description and gets the ruleset using `pango_ot_ruleset_get_for_description()` or create a new one using pango_ot_ruleset_new_from_description().

###### Structure members

`script:` `PangoScript`

  A `PangoScript`.

`language:` `PangoLanguage`

  A `PangoLanguage`.

`static_gsub_features:` `PangoOTFeatureMap`

  Static map of GSUB features.

`n_static_gsub_features:` `guint`

  Length of `static_gsub_features`, or 0.

`static_gpos_features:` `PangoOTFeatureMap`

  Static map of GPOS features.

`n_static_gpos_features:` `guint`

  Length of `static_gpos_features`, or 0.

`other_features:` `PangoOTFeatureMap`

  Map of extra features to add to both GSUB and GPOS. Unlike the static maps, this pointer need not live beyond the life of function calls taking this struct.

`n_other_features:` `guint`

  Length of `other_features`, or 0.

Available since: 1.18

#### Instance methods

###### pango_ot_ruleset_description_copy

Creates a copy of `desc`, which should be freed with `pango_ot_ruleset_description_free()`.

since: 1.18

###### pango_ot_ruleset_description_equal

Compares two ruleset descriptions for equality.

since: 1.18

###### pango_ot_ruleset_description_free

Frees a ruleset description allocated by pango_ot_ruleset_description_copy().

since: 1.18

###### pango_ot_ruleset_description_hash

Computes a hash of a `PangoOTRulesetDescription` structure suitable to be used, for example, as an argument to g_hash_table_new().

since: 1.18