use crate::queue::Queue;
use crate::sync_queue::SyncQueue;
use serde::de::Deserializer;
use serde::ser::Serializer;
use serde::{Deserialize, Serialize};
impl<'de, V> Deserialize<'de> for SyncQueue<V>
where
V: 'de + Deserialize<'de> + Clone,
{
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
let queue: Queue<V> = Queue::deserialize(deserializer)?;
Ok(SyncQueue::from(queue))
}
}
impl<V> Serialize for SyncQueue<V>
where
V: Serialize + Clone,
{
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
let queue = Queue::<V>::from(self.clone()).serialize(serializer)?;
Ok(queue)
}
}