You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
19 lines
484 B
19 lines
484 B
//! Serialize atomic ID by fetching its value
|
|
|
|
use crate::id::ID;
|
|
use serde::{Deserialize, Deserializer, Serialize};
|
|
|
|
pub fn serialize<S>(x: &atomic::Atomic<ID>, s: S) -> Result<S::Ok, S::Error>
|
|
where
|
|
S: serde::Serializer,
|
|
{
|
|
x.load(atomic::Ordering::Relaxed).serialize(s)
|
|
}
|
|
|
|
pub fn deserialize<'de, D>(deserializer: D) -> Result<atomic::Atomic<ID>, D::Error>
|
|
where
|
|
D: Deserializer<'de>,
|
|
{
|
|
let id: ID = ID::deserialize(deserializer)?;
|
|
Ok(atomic::Atomic::new(id))
|
|
}
|
|
|