# ModeOptionStruct

    struct ModeOptionStruct

Represents the possible mode of the cluster instance.
- `


  ### [label](https://developers.home.google.com/reference/swift/GoogleHomeTypes/Enums/Matter/ModeSelectTrait/ModeOptionStruct#/s:15GoogleHomeTypes6MatterO15ModeSelectTraitV0E12OptionStructV5labelSSvp)


  ` Readable text that describes the mode option for the user.

  #### Declaration

  Swift

      let label: String

- `


  ### [mode](https://developers.home.google.com/reference/swift/GoogleHomeTypes/Enums/Matter/ModeSelectTrait/ModeOptionStruct#/s:15GoogleHomeTypes6MatterO15ModeSelectTraitV0E12OptionStructV4modes5UInt8Vvp)


  ` Identifies the mode option for the `https://developers.home.google.com/reference/swift/GoogleHomeTypes/Enums/Matter/ModeSelectTrait/Attributes.html#/s:15GoogleHomeTypes6MatterO15ModeSelectTraitV10AttributesV14supportedModesSayAE0E12OptionStructVGSgvp` attribute.

  #### Declaration

  Swift

      let mode: UInt8

- `


  ### [semanticTags](https://developers.home.google.com/reference/swift/GoogleHomeTypes/Enums/Matter/ModeSelectTrait/ModeOptionStruct#/s:15GoogleHomeTypes6MatterO15ModeSelectTraitV0E12OptionStructV12semanticTagsSayAE011SemanticTagI0VGvp)


  ` A list of semantic tags for the mode option, used to determine the meaning of the mode as
  defined in a standard- or manufacturer-specific namespace. These values are defined in
  `https://developers.home.google.com/reference/swift/GoogleHomeTypes/Enums/Matter/ModeSelectTrait/SemanticTagStruct.html`.

  #### Declaration

  Swift

      let semanticTags: [https://developers.home.google.com/reference/swift/GoogleHomeTypes/Enums/Matter.html.https://developers.home.google.com/reference/swift/GoogleHomeTypes/Enums/Matter/ModeSelectTrait.html.https://developers.home.google.com/reference/swift/GoogleHomeTypes/Enums/Matter/ModeSelectTrait/SemanticTagStruct.html]

- `


  ### [init(decoder:)](https://developers.home.google.com/reference/swift/GoogleHomeTypes/Enums/Matter/ModeSelectTrait/ModeOptionStruct#/s:15GoogleHomeTypes6MatterO15ModeSelectTraitV0E12OptionStructV7decoderAG0aB3SDK0G7DecoderV_tKcfc)


  ` Creates a new Struct instance using data read from the given `TraitDecoder`.
  Throws
  `HomeError.parseError` when parsing fails.

  #### Declaration

  Swift

      init(decoder: TraitDecoder) throws

  #### Parameters

  |---|---|
  | ` decoder ` | The raw data representing this Struct. |

- `


  ### [encode(with:)](https://developers.home.google.com/reference/swift/GoogleHomeTypes/Enums/Matter/ModeSelectTrait/ModeOptionStruct#/s:15GoogleHomeTypes6MatterO15ModeSelectTraitV0E12OptionStructV6encode4withy0aB3SDK0G7EncoderC_tKF)


  ` Writes this Struct to the given `TraitEncoder`.
  Throws `HomeError.parseError` if the data could not be encoded.

  #### Declaration

  Swift

      func encode(with encoder: TraitEncoder) throws

- `


  ### [structField(id:)](https://developers.home.google.com/reference/swift/GoogleHomeTypes/Enums/Matter/ModeSelectTrait/ModeOptionStruct#/s:15GoogleHomeTypes6MatterO15ModeSelectTraitV0E12OptionStructV11structField2id0aB3SDK0K0_pSgs6UInt32V_tFZ)


  ` Returns the field corresponding to the given field ID.

  #### Declaration

  Swift

      static func structField(id: UInt32) -> (any Field)?