capnweb_core/protocol/
parser.rs1use super::expression::Expression;
5use serde_json::Value as JsonValue;
6
7pub struct ExpressionParser;
8
9impl ExpressionParser {
10 pub fn parse(value: &JsonValue) -> Result<Expression, ParseError> {
12 Expression::from_json(value).map_err(ParseError::ExpressionError)
13 }
14}
15
16#[derive(Debug, thiserror::Error)]
17pub enum ParseError {
18 #[error("Expression parsing error: {0}")]
19 ExpressionError(#[from] super::expression::ExpressionError),
20
21 #[error("Invalid JSON structure")]
22 InvalidJson,
23
24 #[error("Unknown expression type")]
25 UnknownType,
26}