diff --git a/CHANGELOG.md b/CHANGELOG.md index fd09f03889..15d5fad183 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -481,6 +481,8 @@ let user = user::ActiveModel::builder() ### Enhancements +* Added `serde` feature +* `TextUuid` now derives `Serialize` and `Deserialize` when the `serde` feature is enabled * [sea-orm-cli] Added `--column-extra-derives` https://github.com/SeaQL/sea-orm/pull/2212 * [sea-orm-cli] Added `--big-integer-type=i32` to use i32 for bigint (for SQLite) * [sea-orm-cli] Fix codegen to not generate relations to filtered entities https://github.com/SeaQL/sea-orm/pull/2913 diff --git a/Cargo.toml b/Cargo.toml index 6d090973e0..17d369be80 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -76,7 +76,7 @@ sea-schema = { version = "0.17.0-rc.15", default-features = false, features = [ "writer", "probe", ], optional = true } -serde = { version = "1.0", default-features = false } +serde = { version = "1.0", default-features = false, optional = true } serde_json = { version = "1.0", default-features = false, optional = true } sqlx = { version = "0.8.4", default-features = false, optional = true } strum = { version = "0.28", default-features = false } @@ -153,6 +153,7 @@ rusqlite = [] schema-sync = ["sea-schema"] sea-orm-internal = [] seaography = ["sea-orm-macros/seaography"] +serde = ["dep:serde", "serde/derive", "uuid?/serde"] sqlite-no-row-value-before-3_15 = [] sqlite-use-returning-for-3_35 = [] sqlx-all = ["sqlx-mysql", "sqlx-postgres", "sqlx-sqlite"] @@ -204,6 +205,7 @@ with-ipnetwork = [ "sea-query-sqlx?/with-ipnetwork", ] with-json = [ + "dep:serde", "serde_json", "sea-query/with-json", "sea-orm-macros/with-json", diff --git a/src/value/text_uuid.rs b/src/value/text_uuid.rs index 62f5ec2698..293d938591 100644 --- a/src/value/text_uuid.rs +++ b/src/value/text_uuid.rs @@ -13,6 +13,7 @@ use crate::{DbErr, TryGetError}; /// - Allows for queries like `WHERE id IN (, , ...)` which are /// impossible to write with `BLOB` values #[derive(Clone, Debug, PartialEq, Eq, Copy)] +#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] pub struct TextUuid(pub uuid::Uuid); impl From for sea_query::Value {