diff --git a/src/annotated.rs b/src/annotated.rs index 9a0e07e..bff85d3 100644 --- a/src/annotated.rs +++ b/src/annotated.rs @@ -1,6 +1,6 @@ use std::marker::PhantomData; -use crate::{ParseResult, Parser}; +use crate::{representation::Representation, ParseResult, Parser}; pub struct AnnotatedParser where @@ -8,6 +8,7 @@ where { inner: P, name: Option, + repr: Option, phantom: PhantomData<(I, O, E)>, } @@ -32,6 +33,7 @@ where Self { inner, name: None, + repr: None, phantom: PhantomData, } } @@ -42,4 +44,11 @@ where ..self } } + + pub fn with_repr(self, repr: Representation) -> Self { + Self { + repr: Some(repr), + ..self + } + } } diff --git a/src/lib.rs b/src/lib.rs index 681a09f..7aba179 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -5,6 +5,7 @@ mod combinators; mod map; mod parser; mod primitives; +mod representation; mod sequence; #[cfg(test)] diff --git a/src/representation.rs b/src/representation.rs new file mode 100644 index 0000000..dbd06b0 --- /dev/null +++ b/src/representation.rs @@ -0,0 +1,2 @@ +#[derive(Debug)] +pub struct Representation {}