serde_duper

Crates.ioserde_duper
lib.rsserde_duper
version0.4.3
created_at2025-10-20 23:39:59.410404+00
updated_at2025-12-23 21:05:25.667314+00
descriptionSerde support for Duper.
homepagehttps://duper.dev.br
repositoryhttps://github.com/EpicEric/duper
max_upload_size
id1892889
size236,766
Eric Rodrigues Pires (EpicEric)

documentation

README

The Duper logo, with a confident spectacled mole wearing a flailing blue cape.

Serde Duper

Crates.io version GitHub license

Adds serde support for Duper.

See the main project on GitHub.

Installation

cargo add serde_duper
# -- or --
cargo add serde_duper --features macros,uuid,chrono

Example

use serde::{Deserialize, Serialize};
use serde_duper::types::DuperUuid;
use uuid::Uuid;

#[derive(Serialize, Deserialize)]
#[serde(rename = "Status")]
enum UserStatus {
    Disabled,
    PendingApproval,
    Enabled,
}

#[derive(Serialize, Deserialize)]
struct User {
    #[serde(with = "DuperUuid")]
    id: Uuid,
    status: UserStatus,
    last_known_ips: Vec<String>,
}

let u = User {
    id: "314dfe6f-7a76-4c43-80b9-3b0ceb0960c0".parse().unwrap(),
    status: UserStatus::Enabled,
    last_known_ips: vec!["2a02:ec80:700:ed1a::1".to_string()],
};
let d = serde_duper::to_string(&u).unwrap();
println!("{}", d);
// This should print:
//     User({
//       id: Uuid("314dfe6f-7a76-4c43-80b9-3b0ceb0960c0"),
//       status: Status("Enabled"),
//       last_known_ips: ["2a02:ec80:700:ed1a::1"],
//     })
Commit count: 0

cargo fmt