Search documentation of ash

# View Source Ash.Type.Struct (ash v3.4.30)

Represents a struct.

Use the `instance_of` constraint to specify that it must be an instance of a specific struct.

This cannot be loaded from a database unless the `instance_of` constraint is provided. If not, it can only be used to cast input, i.e for arguments.

## Constraints

- `:instance_of` (`atom/0`) - The module the struct should be an instance of

- `:preserve_nil_values?` (`boolean/0`) - If set to true, when storing, nil values will be kept. Otherwise, nil values will be omitted. The default value is `false`.

- `:fields` (`keyword/0`) - The types of the fields in the struct, and their constraints.
  For example:

      fields:  [
        amount: [
          type: :integer,
          constraints: [
            max: 10
          ]
        ],
        currency: [
          type: :string,
          allow_nil?: false,
          constraints: [
            max_length: 3
          ]
        ]
      ]

  allow_nil? is true by default

  - `:type` (an `Ash.Type`) - Required.

  - `:allow_nil?` (`boolean/0`) - The default value is `true`.

  - `:constraints` (`keyword/0`) - The default value is `[]`.

# Summary

## Functions

field_types(value)
handle_change?()
prepare_change?()

# Functions

Link to this function

# field_types(value)

View Source
Link to this function

# handle_change?()

View Source
Link to this function

# prepare_change?()

View Source