### Struct

# PangoOT.RulesetDescription

#### 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` | a `PangoScript`.
`language` | a `PangoLanguage`.
`static_gsub_features` | static map of GSUB features, or `NULL`.
`n_static_gsub_features` | length of `static_gsub_features`, or 0.
`static_gpos_features` | static map of GPOS features, or `NULL`.
`n_static_gpos_features` | length of `static_gpos_features`, or 0.
`other_features` | map of extra features to add to both GSUB and GPOS, or `NULL`. Unlike the static maps, this pointer need not live beyond the life of function calls taking this struct.
`n_other_features` | length of `other_features`, or 0.

#### Instance methods

###### pango_ot_ruleset_description_copy

Creates a copy of `desc`, which should be freed with `pango_ot_ruleset_description_free()`. Primarily used internally by `pango_ot_ruleset_get_for_description()` to cache rulesets for ruleset descriptions.

###### pango_ot_ruleset_description_equal

Compares two ruleset descriptions for equality. Two ruleset descriptions are considered equal if the rulesets they describe are provably identical. This means that their script, language, and all feature sets should be equal. For static feature sets, the array addresses are compared directly, while for other features, the list of features is compared one by one. (Two ruleset descriptions may result in identical rulesets being created, but still compare `FALSE`.)

###### pango_ot_ruleset_description_free

Frees a ruleset description allocated by `pango_ot_ruleset_description_copy()`.

###### 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()`.