Skip to main content

PgEnum

Derive Macro PgEnum 

Source
#[derive(PgEnum)]
{
    // Attributes available to this derive:
    #[orm]
}
Expand description

Derive PgEnum helpers to map a Rust enum to a PostgreSQL ENUM type.

§Example

use pgorm::PgEnum;

#[derive(PgEnum, Debug, Clone, PartialEq)]
#[orm(pg_type = "order_status")]
pub enum OrderStatus {
    #[orm(rename = "pending")]
    Pending,
    Processing,   // defaults to "processing" (snake_case)
    Shipped,
    Delivered,
    Cancelled,
}

§Generated

  • impl ToSql for OrderStatus
  • impl<'a> FromSql<'a> for OrderStatus
  • impl PgType for OrderStatus (returns "{pg_type}[]")

§Attributes

Enum-level:

  • #[orm(pg_type = "name")] - PostgreSQL ENUM type name (required)

Variant-level:

  • #[orm(rename = "name")] - Override the SQL string for this variant (optional, defaults to snake_case)