substrait/parse/
context.rs1use thiserror::Error;
6
7use crate::parse::proto::extensions::SimpleExtensionUrn;
8use crate::parse::{Anchor, Parse};
9
10pub(crate) trait Context {
15 fn parse<T: Parse<Self>>(&mut self, item: T) -> Result<T::Parsed, T::Error>
19 where
20 Self: Sized,
21 {
22 item.parse(self)
23 }
24}
25
26#[derive(Debug, Error, PartialEq)]
28pub enum ContextError {
29 #[error("undefined reference to simple extension with anchor `{0}`")]
31 UndefinedSimpleExtension(Anchor<SimpleExtensionUrn>),
32
33 #[error("duplicate anchor `{0}` for simple extension")]
35 DuplicateSimpleExtension(Anchor<SimpleExtensionUrn>),
36
37 #[error("unsupported simple extension urn: {0}")]
39 UnsupportedUrn(String),
40}