Versioned

Derive Macro Versioned 

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

Derives the Versioned trait for a struct.

§Attributes

  • #[versioned(version = "x.y.z")]: Specifies the semantic version (required). The version string must be a valid semantic version.
  • #[versioned(version_key = "...")]: Customizes the version field key (optional, default: “version”).
  • #[versioned(data_key = "...")]: Customizes the data field key (optional, default: “data”).

§Examples

Basic usage:

use version_migrate::Versioned;

#[derive(Versioned)]
#[versioned(version = "1.0.0")]
pub struct Task_V1_0_0 {
    pub id: String,
    pub title: String,
}

Custom keys:

#[derive(Versioned)]
#[versioned(
    version = "1.0.0",
    version_key = "schema_version",
    data_key = "payload"
)]
pub struct Task { ... }
// Serializes to: {"schema_version":"1.0.0","payload":{...}}