vld/combinators/
describe.rs1use serde_json::Value;
2
3use crate::error::VldError;
4use crate::schema::VldSchema;
5
6pub struct ZDescribe<T: VldSchema> {
12 inner: T,
13 description: String,
14}
15
16impl<T: VldSchema> ZDescribe<T> {
17 pub fn new(inner: T, description: &str) -> Self {
18 Self {
19 inner,
20 description: description.to_string(),
21 }
22 }
23
24 pub fn description(&self) -> &str {
26 &self.description
27 }
28
29 pub fn inner_schema(&self) -> &T {
31 &self.inner
32 }
33}
34
35impl<T: VldSchema> VldSchema for ZDescribe<T> {
36 type Output = T::Output;
37
38 fn parse_value(&self, value: &Value) -> Result<T::Output, VldError> {
39 self.inner.parse_value(value)
40 }
41}