Skip to content

Commit

Permalink
hard reset on master before making change
Browse files Browse the repository at this point in the history
  • Loading branch information
eboody committed Dec 6, 2024
1 parent 16b5db8 commit 944de63
Showing 1 changed file with 20 additions and 16 deletions.
36 changes: 20 additions & 16 deletions core/src/join.rs
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
use crate::model::Model;
use async_trait::async_trait;
use serde::de::Error;
use serde::Deserialize;
use serde::{Serialize, Serializer};
use sqlmo::query::Join as JoinQueryFragment;
use sqlmo::query::SelectColumn;
use sqlx::{Database, Decode, Encode, Type};
use std::ops::{Deref, DerefMut};
use serde::de::Error;

pub trait JoinMeta {
type IdType: Clone + Send + Eq + PartialEq + std::hash::Hash;
Expand Down Expand Up @@ -61,7 +61,7 @@ impl<T: JoinMeta> Join<T> {

pub fn new(obj: T) -> Self {
Self {
id: obj._id(),
id: crate::join::JoinMeta::_id(&obj),
data: JoinData::Modified(obj),
}
}
Expand Down Expand Up @@ -228,20 +228,24 @@ impl<T: JoinMeta + Serialize> Serialize for Join<T> {
}

impl<'de, T> Deserialize<'de> for Join<T>
where
T: JoinMeta + Deserialize<'de>,
{
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
T: JoinMeta + Deserialize<'de>,
D: serde::Deserializer<'de>,
{
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: serde::Deserializer<'de>,
{
let data = Option::<T>::deserialize(deserializer)?;

let (id_type, join_data) = match data {
Some(value) => (T::_id(&value), JoinData::QueryResult(value)),
None => return Err(D::Error::custom("Invalid value"))
};

Ok(Join { id: id_type, data: join_data })
}
let data = Option::<T>::deserialize(deserializer)?;

let (id_type, join_data) = match data {
Some(value) => (T::_id(&value), JoinData::QueryResult(value)),
None => return Err(D::Error::custom("Invalid value")),
};

Ok(Join {
id: id_type,
data: join_data,
})
}
}

0 comments on commit 944de63

Please sign in to comment.