zino-derive 0.20.2

Derived traits for zino.
Documentation
Derives the [`Model`](zino_core::model::Model) trait.

# Attributes on structs


- **`#[schema(model_name = "name")]`**: The default model name is obtained by converting 
  the struct name to **snake-case**. You can override it by specifying the `model_name` attribute.

- **`#[schema(item_name = "name")]`**: The `item_name` attribute specifies
  the corresponding field for a single model data item. Default value: **`entry`**.

- **`#[schema(item_name_plural = "name")]`**: The `item_name_plural` attribute specifies
  the corresponding field for model data items. Default value: **`entries`**.

# Attributes on struct fields


- **`#[schema(ignore)]`**: The `ignore` annotation is used to skip a particular field
  such that it maps to no database column.

- **`#[schema(constructor = "path")]`**: The `constructor` attribute is used to
  create a new instance of the column type in `Model::new()`.
  The function must be callable as `fn() -> T`.

- **`#[schema(composable)]`**: The `composable` annotation indicates that the column value 
  relates to a particular model. It is only valid for the data type `M`, `Option<M>` or `Vec<M>`,
  where `M` is a model.

- **`#[schema(read_only)]`**: The `read_only` annotation indicates that
  the column is read-only and can not be modified after creation.
  It also can not been seen in the model definition.

- **`#[schema(generated)]`**: The `generated` annotation indicates that
  the column value is generated by the backend and do not need any frontend input.
  The column will not been seen in the model definition.

- **`#[schema(reserved)]`**: The `generated` annotation is used to mark a special column.
  It will not been seen in the model definition. Built-in reserved fields:
  **`created_at`** | **`updated_at`** | **`deleted_at`** | **`is_deleted`** | **`is_locked`**
  | **`is_archived`** | **`version`** | **`edition`**.

- **`#[schema(auto_initialized)]`**: The `auto_initialized` annotation indicates that
  the column has an automatically initialized value. Different to the `generated` column,
  an `auto_initialized` value can be modified after creation.
  The column will not been seen in the model definition.

- **`#[schema(inherent)]`**: The `inherent` annotation indicates that
  the column value is parsed by an associated function in the model's inherent implementation.