diff --git a/src/native/common.rs b/src/native/common.rs index 2c57f3a..b123b37 100644 --- a/src/native/common.rs +++ b/src/native/common.rs @@ -1,5 +1,5 @@ use chrono::{DateTime, Utc}; -use serde::Deserialize; +use serde::{Deserialize, Serialize}; #[cfg(feature = "python")] use pyo3::{prelude::*, types::PyDateTime}; @@ -13,7 +13,7 @@ use crate::native::deserializers::{ use crate::native::deserializers::{to_py_datetime, to_py_datetime_option}; #[cfg(not(feature = "python"))] -#[derive(Debug, Deserialize, PartialEq)] +#[derive(Clone, Debug, Deserialize, Serialize, PartialEq)] #[serde(rename_all = "camelCase")] pub struct Value { pub by: String, @@ -31,7 +31,7 @@ pub struct Value { } #[cfg(feature = "python")] -#[derive(Clone, Debug, Deserialize, PartialEq)] +#[derive(Clone, Debug, Deserialize, Serialize, PartialEq)] #[serde(rename_all = "camelCase")] #[pyclass] pub struct Value { @@ -79,7 +79,7 @@ impl Value { } #[cfg(not(feature = "python"))] -#[derive(Debug, Deserialize, PartialEq)] +#[derive(Clone, Debug, Deserialize, Serialize, PartialEq)] #[serde(rename_all = "camelCase")] pub struct Reason { pub by: String, @@ -98,7 +98,7 @@ pub struct Reason { } #[cfg(feature = "python")] -#[derive(Clone, Debug, Deserialize, PartialEq)] +#[derive(Clone, Debug, Deserialize, Serialize, PartialEq)] #[serde(rename_all = "camelCase")] #[pyclass] pub struct Reason { @@ -147,7 +147,7 @@ impl Reason { } #[cfg(not(feature = "python"))] -#[derive(Debug, Deserialize, PartialEq)] +#[derive(Clone, Debug, Deserialize, Serialize, PartialEq)] #[serde(rename_all = "camelCase")] pub struct Entry { #[serde(alias = "id")] @@ -157,7 +157,7 @@ pub struct Entry { } #[cfg(feature = "python")] -#[derive(Clone, Debug, Deserialize, PartialEq)] +#[derive(Clone, Debug, Deserialize, Serialize, PartialEq)] #[serde(rename_all = "camelCase")] #[pyclass(get_all)] pub struct Entry { @@ -168,7 +168,7 @@ pub struct Entry { } #[cfg(not(feature = "python"))] -#[derive(Debug, Deserialize, PartialEq)] +#[derive(Clone, Debug, Deserialize, Serialize, PartialEq)] #[serde(rename_all = "camelCase")] pub struct Field { pub name: String, @@ -190,7 +190,7 @@ pub struct Field { } #[cfg(feature = "python")] -#[derive(Clone, Debug, Deserialize, PartialEq)] +#[derive(Clone, Debug, Deserialize, Serialize, PartialEq)] #[serde(rename_all = "camelCase")] #[pyclass] pub struct Field { @@ -253,7 +253,7 @@ impl Field { } #[cfg(not(feature = "python"))] -#[derive(Debug, Deserialize, PartialEq)] +#[derive(Clone, Debug, Deserialize, Serialize, PartialEq)] #[serde(rename_all = "camelCase")] pub struct Category { pub name: String, @@ -268,7 +268,7 @@ pub struct Category { } #[cfg(feature = "python")] -#[derive(Clone, Debug, Deserialize, PartialEq)] +#[derive(Clone, Debug, Deserialize, Serialize, PartialEq)] #[serde(rename_all = "camelCase")] #[pyclass(get_all)] pub struct Category { @@ -284,7 +284,7 @@ pub struct Category { } #[cfg(not(feature = "python"))] -#[derive(Debug, Deserialize, PartialEq)] +#[derive(Clone, Debug, Deserialize, Serialize, PartialEq)] #[serde(rename_all = "camelCase")] pub struct State { pub value: String, @@ -299,7 +299,7 @@ pub struct State { } #[cfg(feature = "python")] -#[derive(Clone, Debug, Deserialize, PartialEq)] +#[derive(Clone, Debug, Deserialize, Serialize, PartialEq)] #[serde(rename_all = "camelCase")] #[pyclass] pub struct State { @@ -339,7 +339,7 @@ impl State { } #[cfg(not(feature = "python"))] -#[derive(Debug, Deserialize, PartialEq)] +#[derive(Clone, Debug, Deserialize, Serialize, PartialEq)] #[serde(rename_all = "camelCase")] pub struct Form { pub name: String, @@ -398,7 +398,7 @@ pub struct Form { } #[cfg(feature = "python")] -#[derive(Clone, Debug, Deserialize, PartialEq)] +#[derive(Clone, Debug, Deserialize, Serialize, PartialEq)] #[serde(rename_all = "camelCase")] #[pyclass] pub struct Form { diff --git a/src/native/site_native.rs b/src/native/site_native.rs index a6bd4b7..463548e 100644 --- a/src/native/site_native.rs +++ b/src/native/site_native.rs @@ -3,7 +3,7 @@ use chrono::{DateTime, Utc}; #[cfg(feature = "python")] use pyo3::{prelude::*, types::PyDateTime}; -use serde::Deserialize; +use serde::{Deserialize, Serialize}; pub use crate::native::{ common::{Category, Entry, Field, Form, Reason, State, Value}, @@ -17,7 +17,7 @@ pub use crate::native::{ use crate::native::deserializers::to_py_datetime; #[cfg(not(feature = "python"))] -#[derive(Debug, Deserialize, PartialEq)] +#[derive(Clone, Debug, Deserialize, Serialize, PartialEq)] #[serde(rename_all = "camelCase")] pub struct Site { pub name: String, @@ -33,7 +33,7 @@ pub struct Site { } #[cfg(feature = "python")] -#[derive(Clone, Debug, Deserialize, PartialEq)] +#[derive(Clone, Debug, Deserialize, Serialize, PartialEq)] #[serde(rename_all = "camelCase")] #[pyclass] pub struct Site { @@ -95,7 +95,7 @@ impl Site { #[cfg(not(feature = "python"))] /// Contains the information from the Prelude native site XML. -#[derive(Debug, Deserialize, PartialEq)] +#[derive(Clone, Debug, Deserialize, Serialize, PartialEq)] #[serde(rename_all = "camelCase")] pub struct SiteNative { #[serde(rename = "site", default)] @@ -104,7 +104,7 @@ pub struct SiteNative { #[cfg(feature = "python")] /// Contains the information from the Prelude native site XML. -#[derive(Debug, Deserialize, PartialEq)] +#[derive(Clone, Debug, Deserialize, Serialize, PartialEq)] #[serde(rename_all = "camelCase")] #[pyclass(get_all)] pub struct SiteNative { diff --git a/src/native/subject_native.rs b/src/native/subject_native.rs index ad20799..b82c94a 100644 --- a/src/native/subject_native.rs +++ b/src/native/subject_native.rs @@ -6,7 +6,7 @@ use pyo3::{prelude::*, types::PyDateTime}; #[cfg(feature = "python")] use crate::native::deserializers::to_py_datetime; -use serde::Deserialize; +use serde::{Deserialize, Serialize}; pub use crate::native::{ common::{Category, Entry, Field, Form, Reason, State, Value}, @@ -17,7 +17,7 @@ pub use crate::native::{ }; #[cfg(not(feature = "python"))] -#[derive(Debug, Deserialize, PartialEq)] +#[derive(Clone, Debug, Deserialize, Serialize, PartialEq)] #[serde(rename_all = "camelCase")] pub struct Patient { pub patient_id: String, @@ -40,7 +40,7 @@ pub struct Patient { } #[cfg(feature = "python")] -#[derive(Clone, Debug, Deserialize, PartialEq)] +#[derive(Clone, Debug, Deserialize, Serialize, PartialEq)] #[serde(rename_all = "camelCase")] #[pyclass] pub struct Patient { @@ -114,7 +114,7 @@ impl Patient { #[cfg(not(feature = "python"))] /// Contains the information from the Prelude native subject XML. -#[derive(Debug, Deserialize, PartialEq)] +#[derive(Clone, Debug, Deserialize, Serialize, PartialEq)] #[serde(rename_all = "camelCase")] pub struct SubjectNative { #[serde(rename = "patient", default)] @@ -123,7 +123,7 @@ pub struct SubjectNative { #[cfg(feature = "python")] /// Contains the information from the Prelude native subject XML. -#[derive(Debug, Deserialize, PartialEq)] +#[derive(Clone, Debug, Deserialize, Serialize, PartialEq)] #[serde(rename_all = "camelCase")] #[pyclass(get_all)] pub struct SubjectNative { diff --git a/src/native/user_native.rs b/src/native/user_native.rs index 75835ff..bc8f3e3 100644 --- a/src/native/user_native.rs +++ b/src/native/user_native.rs @@ -1,4 +1,4 @@ -use serde::Deserialize; +use serde::{Deserialize, Serialize}; #[cfg(feature = "python")] use pyo3::prelude::*; @@ -12,7 +12,7 @@ pub use crate::native::{ }; #[cfg(not(feature = "python"))] -#[derive(Debug, Deserialize, PartialEq)] +#[derive(Clone, Debug, Deserialize, Serialize, PartialEq)] #[serde(rename_all = "camelCase")] pub struct User { pub unique_id: String, @@ -30,7 +30,7 @@ pub struct User { } #[cfg(feature = "python")] -#[derive(Clone, Debug, Deserialize, PartialEq)] +#[derive(Clone, Debug, Deserialize, Serialize, PartialEq)] #[serde(rename_all = "camelCase")] #[pyclass(get_all)] pub struct User { @@ -50,7 +50,7 @@ pub struct User { #[cfg(not(feature = "python"))] /// Contains the information from the Prelude native user XML. -#[derive(Debug, Deserialize, PartialEq)] +#[derive(Clone, Debug, Deserialize, Serialize, PartialEq)] #[serde(rename_all = "camelCase")] pub struct UserNative { #[serde(rename = "user", default)] @@ -59,7 +59,7 @@ pub struct UserNative { #[cfg(feature = "python")] /// Contains the information from the Prelude native user XML. -#[derive(Debug, Deserialize, PartialEq)] +#[derive(Clone, Debug, Deserialize, Serialize, PartialEq)] #[serde(rename_all = "camelCase")] #[pyclass(get_all)] pub struct UserNative {