    final class TraitEncoder

Public interface for encoding Trait data.
- `


  ### [PayloadType](https://developers.home.google.com/reference/swift/GoogleHomeSDK/Classes/TraitEncoder/PayloadType.html)


  ` Undocumented

  #### Declaration

  Swift

      enum PayloadType

      extension https://developers.home.google.com/reference/swift/GoogleHomeSDK/Classes/TraitEncoder.html.PayloadType : Equatable, Hashable

- `


  ### [encodingFormatResolvesToProtobuf](https://developers.home.google.com/reference/swift/GoogleHomeSDK/Classes/TraitEncoder#/s:13GoogleHomeSDK12TraitEncoderC32encodingFormatResolvesToProtobufSbvp)


  ` Undocumented

  #### Declaration

  Swift

      var encodingFormatResolvesToProtobuf: Bool { get }

- `


  ### [setPayload(_:)](https://developers.home.google.com/reference/swift/GoogleHomeSDK/Classes/TraitEncoder#/s:13GoogleHomeSDK12TraitEncoderC10setPayloadyyAA0dG0VF)


  ` Undocumented

  #### Declaration

  Swift

      @_spi(Unknown)
      func setPayload(_ payload: https://developers.home.google.com/reference/swift/GoogleHomeSDK/Structs/TraitPayload.html)

- `


  ### [wrapPayload(namespace:)](https://developers.home.google.com/reference/swift/GoogleHomeSDK/Classes/TraitEncoder#/s:13GoogleHomeSDK12TraitEncoderC11wrapPayload9namespaceACXDSays6UInt32VG_tF)


  ` Undocumented

  #### Declaration

  Swift

      @discardableResult
      func wrapPayload(namespace: [UInt32]) -> Self

- `


  ### [encode(tag:value:)](https://developers.home.google.com/reference/swift/GoogleHomeSDK/Classes/TraitEncoder#/s:13GoogleHomeSDK12TraitEncoderC6encode3tag5valueACXDs6UInt32V_xtKAA6ScalarRzlF)


  ` Undocumented

  #### Declaration

  Swift

      @discardableResult
      func encode<T>(tag: https://developers.home.google.com/reference/swift/GoogleHomeSDK/GoogleHomeSDK.html#/s:13GoogleHomeSDK5TagIDa, value: T) throws -> Self where T : https://developers.home.google.com/reference/swift/GoogleHomeSDK/GoogleHomeSDK.html#/s:13GoogleHomeSDK6ScalarP

- `


  ### [encode(tag:value:)](https://developers.home.google.com/reference/swift/GoogleHomeSDK/Classes/TraitEncoder#/s:13GoogleHomeSDK12TraitEncoderC6encode3tag5valueACXDs6UInt32V_SayxGtKAA6ScalarRzlF)


  ` Undocumented

  #### Declaration

  Swift

      @discardableResult
      func encode<T>(tag: https://developers.home.google.com/reference/swift/GoogleHomeSDK/GoogleHomeSDK.html#/s:13GoogleHomeSDK5TagIDa, value: [T]) throws -> Self where T : https://developers.home.google.com/reference/swift/GoogleHomeSDK/GoogleHomeSDK.html#/s:13GoogleHomeSDK6ScalarP

- `


  ### [encode(tag:value:)](https://developers.home.google.com/reference/swift/GoogleHomeSDK/Classes/TraitEncoder#/s:13GoogleHomeSDK12TraitEncoderC6encode3tag5valueACXDs6UInt32V_xSgtKAA6ScalarRzlF)


  ` Undocumented

  #### Declaration

  Swift

      @discardableResult
      func encode<T>(tag: https://developers.home.google.com/reference/swift/GoogleHomeSDK/GoogleHomeSDK.html#/s:13GoogleHomeSDK5TagIDa, value: T?) throws -> Self where T : https://developers.home.google.com/reference/swift/GoogleHomeSDK/GoogleHomeSDK.html#/s:13GoogleHomeSDK6ScalarP

- `


  ### [encode(tag:value:)](https://developers.home.google.com/reference/swift/GoogleHomeSDK/Classes/TraitEncoder#/s:13GoogleHomeSDK12TraitEncoderC6encode3tag5valueACXDs6UInt32V_SayxGSgtKAA6ScalarRzlF)


  ` Undocumented

  #### Declaration

  Swift

      @discardableResult
      func encode<T>(tag: https://developers.home.google.com/reference/swift/GoogleHomeSDK/GoogleHomeSDK.html#/s:13GoogleHomeSDK5TagIDa, value: [T]?) throws -> Self where T : https://developers.home.google.com/reference/swift/GoogleHomeSDK/GoogleHomeSDK.html#/s:13GoogleHomeSDK6ScalarP

- `


  ### [encodeNullable(tag:value:)](https://developers.home.google.com/reference/swift/GoogleHomeSDK/Classes/TraitEncoder#/s:13GoogleHomeSDK12TraitEncoderC14encodeNullable3tag5valueACXDs6UInt32V_xSgtKAA6ScalarRzlF)


  ` Encodes a nullable scalar value at the given tag.

  If the value is `nil`, a Matter `Null` sentinel is encoded.
  Throws
  `https://developers.home.google.com/reference/swift/GoogleHomeSDK/Structs/HomeError.html` if encoding fails.

  #### Declaration

  Swift

      @discardableResult
      func encodeNullable<T>(tag: https://developers.home.google.com/reference/swift/GoogleHomeSDK/GoogleHomeSDK.html#/s:13GoogleHomeSDK5TagIDa, value: T?) throws -> Self where T : https://developers.home.google.com/reference/swift/GoogleHomeSDK/GoogleHomeSDK.html#/s:13GoogleHomeSDK6ScalarP

  #### Parameters

  |---|---|
  | ` tag ` | The tag ID where the value should be encoded. |
  | ` value ` | The scalar value to encode, or `nil`. |

  #### Return Value

  The encoder instance for chaining.
- `


  ### [encodeNullable(tag:value:)](https://developers.home.google.com/reference/swift/GoogleHomeSDK/Classes/TraitEncoder#/s:13GoogleHomeSDK12TraitEncoderC14encodeNullable3tag5valueACXDs6UInt32V_SayxGSgtKAA6ScalarRzlF)


  ` Encodes a nullable array of scalar values at the given tag.

  If the value is `nil`, a Matter `Null` sentinel is encoded.
  Throws
  `https://developers.home.google.com/reference/swift/GoogleHomeSDK/Structs/HomeError.html` if encoding fails.

  #### Declaration

  Swift

      @discardableResult
      func encodeNullable<T>(tag: https://developers.home.google.com/reference/swift/GoogleHomeSDK/GoogleHomeSDK.html#/s:13GoogleHomeSDK5TagIDa, value: [T]?) throws -> Self where T : https://developers.home.google.com/reference/swift/GoogleHomeSDK/GoogleHomeSDK.html#/s:13GoogleHomeSDK6ScalarP

  #### Parameters

  |---|---|
  | ` tag ` | The tag ID where the value should be encoded. |
  | ` value ` | The array of scalar values to encode, or `nil`. |

  #### Return Value

  The encoder instance for chaining.
- `


  ### [encode(tag:value:)](https://developers.home.google.com/reference/swift/GoogleHomeSDK/Classes/TraitEncoder#/s:13GoogleHomeSDK12TraitEncoderC6encode3tag5valueACXDs6UInt32V_xtKAA6BitmapRzlF)


  ` Undocumented

  #### Declaration

  Swift

      @discardableResult
      func encode<T>(tag: https://developers.home.google.com/reference/swift/GoogleHomeSDK/GoogleHomeSDK.html#/s:13GoogleHomeSDK5TagIDa, value: T) throws -> Self where T : https://developers.home.google.com/reference/swift/GoogleHomeSDK/Protocols/Bitmap.html

- `


  ### [encode(tag:value:)](https://developers.home.google.com/reference/swift/GoogleHomeSDK/Classes/TraitEncoder#/s:13GoogleHomeSDK12TraitEncoderC6encode3tag5valueACXDs6UInt32V_SayxGtKAA6BitmapRzlF)


  ` Undocumented

  #### Declaration

  Swift

      @discardableResult
      func encode<T>(tag: https://developers.home.google.com/reference/swift/GoogleHomeSDK/GoogleHomeSDK.html#/s:13GoogleHomeSDK5TagIDa, value: [T]) throws -> Self where T : https://developers.home.google.com/reference/swift/GoogleHomeSDK/Protocols/Bitmap.html

- `


  ### [encode(tag:value:)](https://developers.home.google.com/reference/swift/GoogleHomeSDK/Classes/TraitEncoder#/s:13GoogleHomeSDK12TraitEncoderC6encode3tag5valueACXDs6UInt32V_xSgtKAA6BitmapRzlF)


  ` Undocumented

  #### Declaration

  Swift

      @discardableResult
      func encode<T>(tag: https://developers.home.google.com/reference/swift/GoogleHomeSDK/GoogleHomeSDK.html#/s:13GoogleHomeSDK5TagIDa, value: T?) throws -> Self where T : https://developers.home.google.com/reference/swift/GoogleHomeSDK/Protocols/Bitmap.html

- `


  ### [encode(tag:value:)](https://developers.home.google.com/reference/swift/GoogleHomeSDK/Classes/TraitEncoder#/s:13GoogleHomeSDK12TraitEncoderC6encode3tag5valueACXDs6UInt32V_SayxGSgtKAA6BitmapRzlF)


  ` Undocumented

  #### Declaration

  Swift

      @discardableResult
      func encode<T>(tag: https://developers.home.google.com/reference/swift/GoogleHomeSDK/GoogleHomeSDK.html#/s:13GoogleHomeSDK5TagIDa, value: [T]?) throws -> Self where T : https://developers.home.google.com/reference/swift/GoogleHomeSDK/Protocols/Bitmap.html

- `


  ### [encodeNullable(tag:value:)](https://developers.home.google.com/reference/swift/GoogleHomeSDK/Classes/TraitEncoder#/s:13GoogleHomeSDK12TraitEncoderC14encodeNullable3tag5valueACXDs6UInt32V_xSgtKAA6BitmapRzlF)


  ` Encodes a nullable bitmap value at the given tag.

  If the value is `nil`, a Matter `Null` sentinel is encoded.
  Throws
  `https://developers.home.google.com/reference/swift/GoogleHomeSDK/Structs/HomeError.html` if encoding fails.

  #### Declaration

  Swift

      @discardableResult
      func encodeNullable<T>(tag: https://developers.home.google.com/reference/swift/GoogleHomeSDK/GoogleHomeSDK.html#/s:13GoogleHomeSDK5TagIDa, value: T?) throws -> Self where T : https://developers.home.google.com/reference/swift/GoogleHomeSDK/Protocols/Bitmap.html

  #### Parameters

  |---|---|
  | ` tag ` | The tag ID where the value should be encoded. |
  | ` value ` | The bitmap value to encode, or `nil`. |

  #### Return Value

  The encoder instance for chaining.
- `


  ### [encodeNullable(tag:value:)](https://developers.home.google.com/reference/swift/GoogleHomeSDK/Classes/TraitEncoder#/s:13GoogleHomeSDK12TraitEncoderC14encodeNullable3tag5valueACXDs6UInt32V_SayxGSgtKAA6BitmapRzlF)


  ` Encodes a nullable array of bitmap values at the given tag.

  If the value is `nil`, a Matter `Null` sentinel is encoded.
  Throws
  `https://developers.home.google.com/reference/swift/GoogleHomeSDK/Structs/HomeError.html` if encoding fails.

  #### Declaration

  Swift

      @discardableResult
      func encodeNullable<T>(tag: https://developers.home.google.com/reference/swift/GoogleHomeSDK/GoogleHomeSDK.html#/s:13GoogleHomeSDK5TagIDa, value: [T]?) throws -> Self where T : https://developers.home.google.com/reference/swift/GoogleHomeSDK/Protocols/Bitmap.html

  #### Parameters

  |---|---|
  | ` tag ` | The tag ID where the value should be encoded. |
  | ` value ` | The array of bitmap values to encode, or `nil`. |

  #### Return Value

  The encoder instance for chaining.
- `


  ### [encode(tag:value:)](https://developers.home.google.com/reference/swift/GoogleHomeSDK/Classes/TraitEncoder#/s:13GoogleHomeSDK12TraitEncoderC6encode3tag5valueACXDs6UInt32V_xtKAA4EnumRzlF)


  ` Undocumented

  #### Declaration

  Swift

      @discardableResult
      func encode<T>(tag: https://developers.home.google.com/reference/swift/GoogleHomeSDK/GoogleHomeSDK.html#/s:13GoogleHomeSDK5TagIDa, value: T) throws -> Self where T : https://developers.home.google.com/reference/swift/GoogleHomeSDK/Protocols/Enum.html

- `


  ### [encode(tag:value:)](https://developers.home.google.com/reference/swift/GoogleHomeSDK/Classes/TraitEncoder#/s:13GoogleHomeSDK12TraitEncoderC6encode3tag5valueACXDs6UInt32V_SayxGtKAA4EnumRzlF)


  ` Undocumented

  #### Declaration

  Swift

      @discardableResult
      func encode<T>(tag: https://developers.home.google.com/reference/swift/GoogleHomeSDK/GoogleHomeSDK.html#/s:13GoogleHomeSDK5TagIDa, value: [T]) throws -> Self where T : https://developers.home.google.com/reference/swift/GoogleHomeSDK/Protocols/Enum.html

- `


  ### [encode(tag:value:)](https://developers.home.google.com/reference/swift/GoogleHomeSDK/Classes/TraitEncoder#/s:13GoogleHomeSDK12TraitEncoderC6encode3tag5valueACXDs6UInt32V_xSgtKAA4EnumRzlF)


  ` Undocumented

  #### Declaration

  Swift

      @discardableResult
      func encode<T>(tag: https://developers.home.google.com/reference/swift/GoogleHomeSDK/GoogleHomeSDK.html#/s:13GoogleHomeSDK5TagIDa, value: T?) throws -> Self where T : https://developers.home.google.com/reference/swift/GoogleHomeSDK/Protocols/Enum.html

- `


  ### [encode(tag:value:)](https://developers.home.google.com/reference/swift/GoogleHomeSDK/Classes/TraitEncoder#/s:13GoogleHomeSDK12TraitEncoderC6encode3tag5valueACXDs6UInt32V_SayxGSgtKAA4EnumRzlF)


  ` Undocumented

  #### Declaration

  Swift

      @discardableResult
      func encode<T>(tag: https://developers.home.google.com/reference/swift/GoogleHomeSDK/GoogleHomeSDK.html#/s:13GoogleHomeSDK5TagIDa, value: [T]?) throws -> Self where T : https://developers.home.google.com/reference/swift/GoogleHomeSDK/Protocols/Enum.html

- `


  ### [encodeNullable(tag:value:)](https://developers.home.google.com/reference/swift/GoogleHomeSDK/Classes/TraitEncoder#/s:13GoogleHomeSDK12TraitEncoderC14encodeNullable3tag5valueACXDs6UInt32V_xSgtKAA4EnumRzlF)


  ` Encodes a nullable enum value at the given tag.

  If the value is `nil`, a Matter `Null` sentinel is encoded.
  Throws
  `https://developers.home.google.com/reference/swift/GoogleHomeSDK/Structs/HomeError.html` if encoding fails.

  #### Declaration

  Swift

      @discardableResult
      func encodeNullable<T>(tag: https://developers.home.google.com/reference/swift/GoogleHomeSDK/GoogleHomeSDK.html#/s:13GoogleHomeSDK5TagIDa, value: T?) throws -> Self where T : https://developers.home.google.com/reference/swift/GoogleHomeSDK/Protocols/Enum.html

  #### Parameters

  |---|---|
  | ` tag ` | The tag ID where the value should be encoded. |
  | ` value ` | The enum value to encode, or `nil`. |

  #### Return Value

  The encoder instance for chaining.
- `


  ### [encodeNullable(tag:value:)](https://developers.home.google.com/reference/swift/GoogleHomeSDK/Classes/TraitEncoder#/s:13GoogleHomeSDK12TraitEncoderC14encodeNullable3tag5valueACXDs6UInt32V_SayxGSgtKAA4EnumRzlF)


  ` Encodes a nullable array of enum values at the given tag.

  If the value is `nil`, a Matter `Null` sentinel is encoded.
  Throws
  `https://developers.home.google.com/reference/swift/GoogleHomeSDK/Structs/HomeError.html` if encoding fails.

  #### Declaration

  Swift

      @discardableResult
      func encodeNullable<T>(tag: https://developers.home.google.com/reference/swift/GoogleHomeSDK/GoogleHomeSDK.html#/s:13GoogleHomeSDK5TagIDa, value: [T]?) throws -> Self where T : https://developers.home.google.com/reference/swift/GoogleHomeSDK/Protocols/Enum.html

  #### Parameters

  |---|---|
  | ` tag ` | The tag ID where the value should be encoded. |
  | ` value ` | The array of enum values to encode, or `nil`. |

  #### Return Value

  The encoder instance for chaining.
- `


  ### [encode(tag:value:)](https://developers.home.google.com/reference/swift/GoogleHomeSDK/Classes/TraitEncoder#/s:13GoogleHomeSDK12TraitEncoderC6encode3tag5valueACXDs6UInt32V_xtKAA23StructDataRepresentableRzlF)


  ` Undocumented

  #### Declaration

  Swift

      @discardableResult
      func encode<T>(tag: https://developers.home.google.com/reference/swift/GoogleHomeSDK/GoogleHomeSDK.html#/s:13GoogleHomeSDK5TagIDa, value: T) throws -> Self where T : https://developers.home.google.com/reference/swift/GoogleHomeSDK/Protocols/StructDataRepresentable.html

- `


  ### [encode(tag:value:)](https://developers.home.google.com/reference/swift/GoogleHomeSDK/Classes/TraitEncoder#/s:13GoogleHomeSDK12TraitEncoderC6encode3tag5valueACXDs6UInt32V_SayxGtKAA23StructDataRepresentableRzlF)


  ` Undocumented

  #### Declaration

  Swift

      @discardableResult
      func encode<T>(tag: https://developers.home.google.com/reference/swift/GoogleHomeSDK/GoogleHomeSDK.html#/s:13GoogleHomeSDK5TagIDa, value: [T]) throws -> Self where T : https://developers.home.google.com/reference/swift/GoogleHomeSDK/Protocols/StructDataRepresentable.html

- `


  ### [encode(tag:value:)](https://developers.home.google.com/reference/swift/GoogleHomeSDK/Classes/TraitEncoder#/s:13GoogleHomeSDK12TraitEncoderC6encode3tag5valueACXDs6UInt32V_xSgtKAA23StructDataRepresentableRzlF)


  ` Undocumented

  #### Declaration

  Swift

      @discardableResult
      func encode<T>(tag: https://developers.home.google.com/reference/swift/GoogleHomeSDK/GoogleHomeSDK.html#/s:13GoogleHomeSDK5TagIDa, value: T?) throws -> Self where T : https://developers.home.google.com/reference/swift/GoogleHomeSDK/Protocols/StructDataRepresentable.html

- `


  ### [encode(tag:value:)](https://developers.home.google.com/reference/swift/GoogleHomeSDK/Classes/TraitEncoder#/s:13GoogleHomeSDK12TraitEncoderC6encode3tag5valueACXDs6UInt32V_SayxGSgtKAA23StructDataRepresentableRzlF)


  ` Undocumented

  #### Declaration

  Swift

      @discardableResult
      func encode<T>(tag: https://developers.home.google.com/reference/swift/GoogleHomeSDK/GoogleHomeSDK.html#/s:13GoogleHomeSDK5TagIDa, value: [T]?) throws -> Self where T : https://developers.home.google.com/reference/swift/GoogleHomeSDK/Protocols/StructDataRepresentable.html

- `


  ### [encodeNullable(tag:value:)](https://developers.home.google.com/reference/swift/GoogleHomeSDK/Classes/TraitEncoder#/s:13GoogleHomeSDK12TraitEncoderC14encodeNullable3tag5valueACXDs6UInt32V_xSgtKAA23StructDataRepresentableRzlF)


  ` Encodes a nullable struct value at the given tag.

  If the value is `nil`, a Matter `Null` sentinel is encoded.
  Throws
  `https://developers.home.google.com/reference/swift/GoogleHomeSDK/Structs/HomeError.html` if encoding fails.

  #### Declaration

  Swift

      @discardableResult
      func encodeNullable<T>(tag: https://developers.home.google.com/reference/swift/GoogleHomeSDK/GoogleHomeSDK.html#/s:13GoogleHomeSDK5TagIDa, value: T?) throws -> Self where T : https://developers.home.google.com/reference/swift/GoogleHomeSDK/Protocols/StructDataRepresentable.html

  #### Parameters

  |---|---|
  | ` tag ` | The tag ID where the value should be encoded. |
  | ` value ` | The struct value to encode, or `nil`. |

  #### Return Value

  The encoder instance for chaining.
- `


  ### [encodeNullable(tag:value:)](https://developers.home.google.com/reference/swift/GoogleHomeSDK/Classes/TraitEncoder#/s:13GoogleHomeSDK12TraitEncoderC14encodeNullable3tag5valueACXDs6UInt32V_SayxGSgtKAA23StructDataRepresentableRzlF)


  ` Encodes a nullable array of struct values at the given tag.

  If the value is `nil`, a Matter `Null` sentinel is encoded.
  Throws
  `https://developers.home.google.com/reference/swift/GoogleHomeSDK/Structs/HomeError.html` if encoding fails.

  #### Declaration

  Swift

      @discardableResult
      func encodeNullable<T>(tag: https://developers.home.google.com/reference/swift/GoogleHomeSDK/GoogleHomeSDK.html#/s:13GoogleHomeSDK5TagIDa, value: [T]?) throws -> Self where T : https://developers.home.google.com/reference/swift/GoogleHomeSDK/Protocols/StructDataRepresentable.html

  #### Parameters

  |---|---|
  | ` tag ` | The tag ID where the value should be encoded. |
  | ` value ` | The array of struct values to encode, or `nil`. |

  #### Return Value

  The encoder instance for chaining.
- `


  ### [encode(tag:value:)](https://developers.home.google.com/reference/swift/GoogleHomeSDK/Classes/TraitEncoder#/s:13GoogleHomeSDK12TraitEncoderC6encode3tag5valueACXDs6UInt32V_SDyxq_GtKAA6ScalarRzAA23StructDataRepresentableR_r0_lF)


  ` Undocumented

  #### Declaration

  Swift

      @discardableResult
      func encode<K, V>(tag: https://developers.home.google.com/reference/swift/GoogleHomeSDK/GoogleHomeSDK.html#/s:13GoogleHomeSDK5TagIDa, value: [K : V]) throws -> Self where K : https://developers.home.google.com/reference/swift/GoogleHomeSDK/GoogleHomeSDK.html#/s:13GoogleHomeSDK6ScalarP, V : https://developers.home.google.com/reference/swift/GoogleHomeSDK/Protocols/StructDataRepresentable.html

- `


  ### [encode(tag:value:)](https://developers.home.google.com/reference/swift/GoogleHomeSDK/Classes/TraitEncoder#/s:13GoogleHomeSDK12TraitEncoderC6encode3tag5valueACXDs6UInt32V_SDyxq_GtKAA6ScalarRzAaJR_r0_lF)


  ` Undocumented

  #### Declaration

  Swift

      @discardableResult
      func encode<K, V>(tag: https://developers.home.google.com/reference/swift/GoogleHomeSDK/GoogleHomeSDK.html#/s:13GoogleHomeSDK5TagIDa, value: [K : V]) throws -> Self where K : https://developers.home.google.com/reference/swift/GoogleHomeSDK/GoogleHomeSDK.html#/s:13GoogleHomeSDK6ScalarP, V : https://developers.home.google.com/reference/swift/GoogleHomeSDK/GoogleHomeSDK.html#/s:13GoogleHomeSDK6ScalarP

- `


  ### [encodeNull(tag:)](https://developers.home.google.com/reference/swift/GoogleHomeSDK/Classes/TraitEncoder#/s:13GoogleHomeSDK12TraitEncoderC10encodeNull3tagACXDs6UInt32V_tKF)


  ` Encodes a null sentinel value at the given tag.
  Throws
  `https://developers.home.google.com/reference/swift/GoogleHomeSDK/Structs/HomeError.html` if encoding fails.

  #### Declaration

  Swift

      @discardableResult
      func encodeNull(tag: https://developers.home.google.com/reference/swift/GoogleHomeSDK/GoogleHomeSDK.html#/s:13GoogleHomeSDK5TagIDa) throws -> Self

  #### Parameters

  |---|---|
  | ` tag ` | The tag ID where the null value should be encoded. |

  #### Return Value

  The encoder instance for chaining.