json_utils/schema/
schema_node_into.rs1use super::*;
2
3macro_rules! valid_node_into_result {
4 ($e: ident) => {
5 enum_variant_into_result!(ValidNode, $e, $e);
6 };
7}
8
9macro_rules! node_into_result_via_valid_node {
10 ($e: ident) => {
11 impl Into<Result<$e, SchemaNode>> for SchemaNode {
12 fn into(self) -> Result<$e, SchemaNode> {
13 match self {
14 SchemaNode::ValidNode(valid_node) => {
15 Into::<Result<$e, ValidNode>>::into(valid_node)
16 .map_err(SchemaNode::ValidNode)
17 }
18
19 other => Err(other),
20 }
21 }
22 }
23 };
24}
25
26valid_node_into_result!(NullNode);
27valid_node_into_result!(BooleanNode);
28valid_node_into_result!(StringNode);
29valid_node_into_result!(IntegerNode);
30valid_node_into_result!(NumberNode);
31valid_node_into_result!(ArrayNode);
32valid_node_into_result!(ObjectNode);
33
34node_into_result_via_valid_node!(NullNode);
35node_into_result_via_valid_node!(BooleanNode);
36node_into_result_via_valid_node!(StringNode);
37node_into_result_via_valid_node!(IntegerNode);
38node_into_result_via_valid_node!(NumberNode);
39node_into_result_via_valid_node!(ArrayNode);
40node_into_result_via_valid_node!(ObjectNode);