AnyStruct

struct AnyStruct
extension AnyStruct : AutomationValue, Equatable, Hashable, Sendable, StructDataRepresentable

A type-erased StructDataRepresentable

  • 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.

  • 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
  • Casts the field to the given type.

    Declaration

    Swift

    func cast<T>(_ type: T.Type = T.self) -> T? where T : StructDataRepresentable
  • Returns true if the field is of the given type.

    Declaration

    Swift

    func `is`<T>(_ type: T.Type = T.self) -> Bool where T : StructDataRepresentable
  • Undocumented

    Declaration

    Swift

    func isEqual(to other: any StructDataRepresentable) -> Bool
  • Returns a Boolean value indicating whether two values are equal.

    Equality is the inverse of inequality. For any values a and b, a == b implies that a != b is false.

    Declaration

    Swift

    static func == (lhs: AnyStruct, rhs: AnyStruct) -> Bool

    Parameters

    lhs

    A value to compare.

    rhs

    Another value to compare.

  • Hashes the essential components of this value by feeding them into the given hasher.

    Implement this method to conform to the Hashable protocol. The components used for hashing must be the same as the components compared in your type’s == operator implementation. Call hasher.combine(_:) with each of these components.

    Important

    In your implementation of hash(into:), don’t call finalize() on the hasher instance provided, or replace it with a different instance. Doing so may become a compile-time error in the future.

    Declaration

    Swift

    func hash(into hasher: inout Hasher)
  • Serializes this Struct to a dictionary of AnyField/AnyAutomationValue pairs that can be used for serialization in the Automation SDK.

    Declaration

    Swift

    @_spi(Unknown)
    func toFields() -> [AnyField : AnyAutomationValue]