diff --git a/src/entity/active_model.rs b/src/entity/active_model.rs index def06622..04611aac 100644 --- a/src/entity/active_model.rs +++ b/src/entity/active_model.rs @@ -4,7 +4,7 @@ use std::fmt::Debug; #[derive(Clone, Debug, Default)] pub struct ActiveValue where - V: Default, + V: Into + Default, { value: V, state: ActiveValueState, @@ -39,7 +39,7 @@ where #[doc(hidden)] pub fn unchanged_active_value_not_intended_for_public_use(value: V) -> ActiveValue where - V: Default, + V: Into + Default, { ActiveValue::unchanged(value) } @@ -64,7 +64,7 @@ pub trait ActiveModelTrait: Clone + Debug + Default { impl ActiveValue where - V: Default, + V: Into + Default, { pub fn set(value: V) -> Self { Self { @@ -103,21 +103,7 @@ where pub fn unwrap(self) -> V { self.value } -} -impl std::convert::AsRef for ActiveValue -where - V: Default, -{ - fn as_ref(&self) -> &V { - &self.value - } -} - -impl ActiveValue -where - V: Default + Into, -{ pub fn into_value(self) -> Value { self.value.into() } @@ -131,6 +117,15 @@ where } } +impl std::convert::AsRef for ActiveValue +where + V: Into + Default, +{ + fn as_ref(&self) -> &V { + &self.value + } +} + impl OneOrManyActiveModel for A where A: ActiveModelTrait,