use serde::Serialize;
use crate::ValueContainer;
use super::{
CollectionWireRef,
ScalarWireRef,
};
#[derive(Clone, Copy, Serialize)]
pub(in crate::value_wire) enum WireShapeRef<'a> {
#[serde(rename = "scalar")]
Scalar(
ScalarWireRef<'a>,
),
#[serde(rename = "collection")]
Collection(
CollectionWireRef<'a>,
),
}
impl<'a> From<&'a ValueContainer> for WireShapeRef<'a> {
#[inline]
fn from(value: &'a ValueContainer) -> Self {
match value {
ValueContainer::Scalar(value) => Self::Scalar(value.into()),
ValueContainer::Collection(values) => {
Self::Collection(values.into())
}
}
}
}