# BalanceStruct

    struct BalanceStruct

Represents a step along a scale of preferences.
- `


  ### [step](https://developers.home.google.com/reference/swift/GoogleHomeTypes/Enums/Google/EnergyPreferenceTrait/BalanceStruct#/s:15GoogleHomeTypes0A0O21EnergyPreferenceTraitV13BalanceStructV4steps5UInt8Vvp)


  ` The relative value, in percentage, along a scale of preferences. Supported values:
  - `0`: The device entirely favors the priority specified by the first element in the `energyPriorities` attribute.
  - `50`: The device splits its energy consumption between the two priorities in the `energyPriorities` attribute.
  - `100`: The device entirely favors the priority specified by the second element in the `energyPriorities` attribute.

  <br />

  #### Declaration

  Swift

      let step: UInt8

- `


  ### [label](https://developers.home.google.com/reference/swift/GoogleHomeTypes/Enums/Google/EnergyPreferenceTrait/BalanceStruct#/s:15GoogleHomeTypes0A0O21EnergyPreferenceTraitV13BalanceStructV5labelSSSgvp)


  ` An optional string explaining which actions a device might take at the given `https://developers.home.google.com/reference/swift/GoogleHomeTypes/Enums/Google/EnergyPreferenceTrait/BalanceStruct.html#/s:15GoogleHomeTypes0A0O21EnergyPreferenceTraitV13BalanceStructV4steps5UInt8Vvp` value.

  #### Declaration

  Swift

      let label: String?

- `


  ### [init(decoder:)](https://developers.home.google.com/reference/swift/GoogleHomeTypes/Enums/Google/EnergyPreferenceTrait/BalanceStruct#/s:15GoogleHomeTypes0A0O21EnergyPreferenceTraitV13BalanceStructV7decoderAG0aB3SDK0F7DecoderV_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/Google/EnergyPreferenceTrait/BalanceStruct#/s:15GoogleHomeTypes0A0O21EnergyPreferenceTraitV13BalanceStructV6encode4withy0aB3SDK0F7EncoderC_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/Google/EnergyPreferenceTrait/BalanceStruct#/s:15GoogleHomeTypes0A0O21EnergyPreferenceTraitV13BalanceStructV11structField2id0aB3SDK0J0_pSgs6UInt32V_tFZ)


  ` Returns the field corresponding to the given field ID.

  #### Declaration

  Swift

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