extern crate alloc;
use alloc::borrow::Cow;
use crate::{FieldLocationHint, ScalarValue, ValueTypeHint};
#[derive(Debug, Clone, PartialEq)]
pub struct FieldEvidence<'de> {
pub name: Cow<'de, str>,
pub location: FieldLocationHint,
pub value_type: Option<ValueTypeHint>,
pub scalar_value: Option<ScalarValue<'de>>,
}
impl<'de> FieldEvidence<'de> {
pub fn new(
name: impl Into<Cow<'de, str>>,
location: FieldLocationHint,
value_type: Option<ValueTypeHint>,
) -> Self {
Self {
name: name.into(),
location,
value_type,
scalar_value: None,
}
}
pub fn with_scalar_value(
name: impl Into<Cow<'de, str>>,
location: FieldLocationHint,
value_type: Option<ValueTypeHint>,
scalar_value: ScalarValue<'de>,
) -> Self {
Self {
name: name.into(),
location,
value_type,
scalar_value: Some(scalar_value),
}
}
}