cel_cxx/values/impls/
opaque.rs1use super::impl_into;
2use crate::values::*;
3
4impl_into!(
5 Opaque: Value {
6 OpaqueValue => |self| self,
7 }
8);
9
10impl FromValue for OpaqueValue {
11 type Output<'a> = OpaqueValue;
12
13 fn from_value<'a>(value: &'a Value) -> Result<Self::Output<'a>, FromValueError> {
14 match value {
15 Value::Opaque(v) => Ok(v.clone()),
16 _ => Err(FromValueError::new(value.clone(), "opaque")),
17 }
18 }
19}
20
21impl FromValue for &OpaqueValue {
22 type Output<'a> = &'a OpaqueValue;
23
24 fn from_value<'a>(value: &'a Value) -> Result<Self::Output<'a>, FromValueError> {
25 match value {
26 Value::Opaque(v) => Ok(v),
27 _ => Err(FromValueError::new(value.clone(), "opaque")),
28 }
29 }
30}