use std::slice::Iter as ArrayIter;
use serde_json::Value;
use serde_json::map::Iter as ObjectIter;
pub(in crate::wire) enum JsonNumberChildren<'a> {
Array(
ArrayIter<'a, Value>,
),
Object(
ObjectIter<'a>,
),
}
impl<'a> JsonNumberChildren<'a> {
#[must_use]
#[inline]
pub(in crate::wire) fn new(value: &'a Value) -> Option<Self> {
match value {
Value::Array(values) => Some(Self::Array(values.iter())),
Value::Object(values) => Some(Self::Object(values.iter())),
_ => None,
}
}
#[inline]
pub(in crate::wire) fn next(&mut self) -> Option<&'a Value> {
match self {
Self::Array(values) => values.next(),
Self::Object(values) => values.next().map(|(_, value)| value),
}
}
}