#[derive(ValueObject)]
{
// Attributes available to this derive:
#[value_object]
}
Expand description
Derive macro for generating PostgreSQL enum boilerplate.
§Overview
The ValueObject derive macro generates all boilerplate code needed for
a PostgreSQL enum type: Display, FromStr, AsRef<str>, and
TryFrom<&str> implementations, plus sqlx and serde attributes.
§Generated Code
For an enum named OrderStatus with pg_type = "order_status",
the macro generates:
Debug, Clone, PartialEq, Eq, PartialOrdderivessqlx(type_name = "order_status", rename_all = "lowercase")attributeserde(rename_all = "lowercase")attributeimpl Display— lowercase variant namesimpl FromStr— case-insensitive parsingimpl AsRef<str>— lowercase string representationimpl TryFrom<&str>— delegates toFromStr
§Attributes
| Attribute | Required | Description |
|---|---|---|
pg_type | Yes | PostgreSQL enum type name (e.g., "order_status") |
§Example
ⓘ
use entity_derive::ValueObject;
#[derive(ValueObject)]
#[value_object(pg_type = "order_status")]
pub enum OrderStatus {
Pending,
Confirmed,
Cancelled,
}
// Generated:
// impl Display for OrderStatus
// impl FromStr for OrderStatus (case-insensitive)
// impl AsRef<str> for OrderStatus
// impl TryFrom<&str> for OrderStatus