pub trait FromEure<'doc>: Sized {
type Error;
// Required method
fn parse(ctx: &ParseContext<'doc>) -> Result<Self, Self::Error>;
}Expand description
Trait for parsing Rust types from Eure documents.
Types implementing this trait can be constructed from EureDocument
via ParseContext.
§Lifetime Parameter
The 'doc lifetime ties the parsed output to the document’s lifetime,
allowing zero-copy parsing for reference types like &'doc str.
§Examples
ⓘ
// Reference type - borrows from document
impl<'doc> FromEure<'doc> for &'doc str { ... }
// Owned type - no lifetime dependency
impl FromEure<'_> for String { ... }Required Associated Types§
Required Methods§
Sourcefn parse(ctx: &ParseContext<'doc>) -> Result<Self, Self::Error>
fn parse(ctx: &ParseContext<'doc>) -> Result<Self, Self::Error>
Parse a value of this type from the given parse context.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.
Implementations on Foreign Types§
Source§impl FromEure<'_> for bool
impl FromEure<'_> for bool
type Error = ParseError
fn parse(ctx: &ParseContext<'_>) -> Result<Self, Self::Error>
Source§impl FromEure<'_> for f32
impl FromEure<'_> for f32
type Error = ParseError
fn parse(ctx: &ParseContext<'_>) -> Result<Self, Self::Error>
Source§impl FromEure<'_> for f64
impl FromEure<'_> for f64
type Error = ParseError
fn parse(ctx: &ParseContext<'_>) -> Result<Self, Self::Error>
Source§impl FromEure<'_> for i32
impl FromEure<'_> for i32
type Error = ParseError
fn parse(ctx: &ParseContext<'_>) -> Result<Self, Self::Error>
Source§impl FromEure<'_> for i64
impl FromEure<'_> for i64
type Error = ParseError
fn parse(ctx: &ParseContext<'_>) -> Result<Self, Self::Error>
Source§impl FromEure<'_> for u32
impl FromEure<'_> for u32
type Error = ParseError
fn parse(ctx: &ParseContext<'_>) -> Result<Self, Self::Error>
Source§impl FromEure<'_> for u64
impl FromEure<'_> for u64
type Error = ParseError
fn parse(ctx: &ParseContext<'_>) -> Result<Self, Self::Error>
Source§impl FromEure<'_> for usize
impl FromEure<'_> for usize
type Error = ParseError
fn parse(ctx: &ParseContext<'_>) -> Result<Self, Self::Error>
Source§impl FromEure<'_> for String
impl FromEure<'_> for String
type Error = ParseError
fn parse(ctx: &ParseContext<'_>) -> Result<Self, Self::Error>
Source§impl FromEure<'_> for BigInt
impl FromEure<'_> for BigInt
type Error = ParseError
fn parse(ctx: &ParseContext<'_>) -> Result<Self, Self::Error>
Source§impl FromEure<'_> for Regex
impl FromEure<'_> for Regex
type Error = ParseError
fn parse(ctx: &ParseContext<'_>) -> Result<Self, Self::Error>
Source§impl<'doc> FromEure<'doc> for &'doc str
impl<'doc> FromEure<'doc> for &'doc str
type Error = ParseError
fn parse(ctx: &ParseContext<'doc>) -> Result<Self, Self::Error>
Source§impl<'doc> FromEure<'doc> for ()
impl<'doc> FromEure<'doc> for ()
type Error = ParseError
fn parse(ctx: &ParseContext<'doc>) -> Result<Self, Self::Error>
Source§impl<'doc, A, B, C, D, E, Err> FromEure<'doc> for (A, B, C, D, E)
impl<'doc, A, B, C, D, E, Err> FromEure<'doc> for (A, B, C, D, E)
Source§impl<'doc, A, B, C, D, E, F, Err> FromEure<'doc> for (A, B, C, D, E, F)
impl<'doc, A, B, C, D, E, F, Err> FromEure<'doc> for (A, B, C, D, E, F)
Source§impl<'doc, A, B, C, D, E, F, G, Err> FromEure<'doc> for (A, B, C, D, E, F, G)
impl<'doc, A, B, C, D, E, F, G, Err> FromEure<'doc> for (A, B, C, D, E, F, G)
Source§impl<'doc, A, B, C, D, E, F, G, H, Err> FromEure<'doc> for (A, B, C, D, E, F, G, H)
impl<'doc, A, B, C, D, E, F, G, H, Err> FromEure<'doc> for (A, B, C, D, E, F, G, H)
Source§impl<'doc, A, B, C, D, E, F, G, H, I, Err> FromEure<'doc> for (A, B, C, D, E, F, G, H, I)where
A: FromEure<'doc, Error = Err>,
B: FromEure<'doc, Error = Err>,
C: FromEure<'doc, Error = Err>,
D: FromEure<'doc, Error = Err>,
E: FromEure<'doc, Error = Err>,
F: FromEure<'doc, Error = Err>,
G: FromEure<'doc, Error = Err>,
H: FromEure<'doc, Error = Err>,
I: FromEure<'doc, Error = Err>,
Err: From<ParseError>,
impl<'doc, A, B, C, D, E, F, G, H, I, Err> FromEure<'doc> for (A, B, C, D, E, F, G, H, I)where
A: FromEure<'doc, Error = Err>,
B: FromEure<'doc, Error = Err>,
C: FromEure<'doc, Error = Err>,
D: FromEure<'doc, Error = Err>,
E: FromEure<'doc, Error = Err>,
F: FromEure<'doc, Error = Err>,
G: FromEure<'doc, Error = Err>,
H: FromEure<'doc, Error = Err>,
I: FromEure<'doc, Error = Err>,
Err: From<ParseError>,
Source§impl<'doc, A, B, C, D, E, F, G, H, I, J, Err> FromEure<'doc> for (A, B, C, D, E, F, G, H, I, J)where
A: FromEure<'doc, Error = Err>,
B: FromEure<'doc, Error = Err>,
C: FromEure<'doc, Error = Err>,
D: FromEure<'doc, Error = Err>,
E: FromEure<'doc, Error = Err>,
F: FromEure<'doc, Error = Err>,
G: FromEure<'doc, Error = Err>,
H: FromEure<'doc, Error = Err>,
I: FromEure<'doc, Error = Err>,
J: FromEure<'doc, Error = Err>,
Err: From<ParseError>,
impl<'doc, A, B, C, D, E, F, G, H, I, J, Err> FromEure<'doc> for (A, B, C, D, E, F, G, H, I, J)where
A: FromEure<'doc, Error = Err>,
B: FromEure<'doc, Error = Err>,
C: FromEure<'doc, Error = Err>,
D: FromEure<'doc, Error = Err>,
E: FromEure<'doc, Error = Err>,
F: FromEure<'doc, Error = Err>,
G: FromEure<'doc, Error = Err>,
H: FromEure<'doc, Error = Err>,
I: FromEure<'doc, Error = Err>,
J: FromEure<'doc, Error = Err>,
Err: From<ParseError>,
Source§impl<'doc, A, B, C, D, E, F, G, H, I, J, K, Err> FromEure<'doc> for (A, B, C, D, E, F, G, H, I, J, K)where
A: FromEure<'doc, Error = Err>,
B: FromEure<'doc, Error = Err>,
C: FromEure<'doc, Error = Err>,
D: FromEure<'doc, Error = Err>,
E: FromEure<'doc, Error = Err>,
F: FromEure<'doc, Error = Err>,
G: FromEure<'doc, Error = Err>,
H: FromEure<'doc, Error = Err>,
I: FromEure<'doc, Error = Err>,
J: FromEure<'doc, Error = Err>,
K: FromEure<'doc, Error = Err>,
Err: From<ParseError>,
impl<'doc, A, B, C, D, E, F, G, H, I, J, K, Err> FromEure<'doc> for (A, B, C, D, E, F, G, H, I, J, K)where
A: FromEure<'doc, Error = Err>,
B: FromEure<'doc, Error = Err>,
C: FromEure<'doc, Error = Err>,
D: FromEure<'doc, Error = Err>,
E: FromEure<'doc, Error = Err>,
F: FromEure<'doc, Error = Err>,
G: FromEure<'doc, Error = Err>,
H: FromEure<'doc, Error = Err>,
I: FromEure<'doc, Error = Err>,
J: FromEure<'doc, Error = Err>,
K: FromEure<'doc, Error = Err>,
Err: From<ParseError>,
Source§impl<'doc, A, B, C, D, E, F, G, H, I, J, K, L, Err> FromEure<'doc> for (A, B, C, D, E, F, G, H, I, J, K, L)where
A: FromEure<'doc, Error = Err>,
B: FromEure<'doc, Error = Err>,
C: FromEure<'doc, Error = Err>,
D: FromEure<'doc, Error = Err>,
E: FromEure<'doc, Error = Err>,
F: FromEure<'doc, Error = Err>,
G: FromEure<'doc, Error = Err>,
H: FromEure<'doc, Error = Err>,
I: FromEure<'doc, Error = Err>,
J: FromEure<'doc, Error = Err>,
K: FromEure<'doc, Error = Err>,
L: FromEure<'doc, Error = Err>,
Err: From<ParseError>,
impl<'doc, A, B, C, D, E, F, G, H, I, J, K, L, Err> FromEure<'doc> for (A, B, C, D, E, F, G, H, I, J, K, L)where
A: FromEure<'doc, Error = Err>,
B: FromEure<'doc, Error = Err>,
C: FromEure<'doc, Error = Err>,
D: FromEure<'doc, Error = Err>,
E: FromEure<'doc, Error = Err>,
F: FromEure<'doc, Error = Err>,
G: FromEure<'doc, Error = Err>,
H: FromEure<'doc, Error = Err>,
I: FromEure<'doc, Error = Err>,
J: FromEure<'doc, Error = Err>,
K: FromEure<'doc, Error = Err>,
L: FromEure<'doc, Error = Err>,
Err: From<ParseError>,
Source§impl<'doc, A, B, C, D, E, F, G, H, I, J, K, L, M, Err> FromEure<'doc> for (A, B, C, D, E, F, G, H, I, J, K, L, M)where
A: FromEure<'doc, Error = Err>,
B: FromEure<'doc, Error = Err>,
C: FromEure<'doc, Error = Err>,
D: FromEure<'doc, Error = Err>,
E: FromEure<'doc, Error = Err>,
F: FromEure<'doc, Error = Err>,
G: FromEure<'doc, Error = Err>,
H: FromEure<'doc, Error = Err>,
I: FromEure<'doc, Error = Err>,
J: FromEure<'doc, Error = Err>,
K: FromEure<'doc, Error = Err>,
L: FromEure<'doc, Error = Err>,
M: FromEure<'doc, Error = Err>,
Err: From<ParseError>,
impl<'doc, A, B, C, D, E, F, G, H, I, J, K, L, M, Err> FromEure<'doc> for (A, B, C, D, E, F, G, H, I, J, K, L, M)where
A: FromEure<'doc, Error = Err>,
B: FromEure<'doc, Error = Err>,
C: FromEure<'doc, Error = Err>,
D: FromEure<'doc, Error = Err>,
E: FromEure<'doc, Error = Err>,
F: FromEure<'doc, Error = Err>,
G: FromEure<'doc, Error = Err>,
H: FromEure<'doc, Error = Err>,
I: FromEure<'doc, Error = Err>,
J: FromEure<'doc, Error = Err>,
K: FromEure<'doc, Error = Err>,
L: FromEure<'doc, Error = Err>,
M: FromEure<'doc, Error = Err>,
Err: From<ParseError>,
Source§impl<'doc, A, B, C, D, E, F, G, H, I, J, K, L, M, N, Err> FromEure<'doc> for (A, B, C, D, E, F, G, H, I, J, K, L, M, N)where
A: FromEure<'doc, Error = Err>,
B: FromEure<'doc, Error = Err>,
C: FromEure<'doc, Error = Err>,
D: FromEure<'doc, Error = Err>,
E: FromEure<'doc, Error = Err>,
F: FromEure<'doc, Error = Err>,
G: FromEure<'doc, Error = Err>,
H: FromEure<'doc, Error = Err>,
I: FromEure<'doc, Error = Err>,
J: FromEure<'doc, Error = Err>,
K: FromEure<'doc, Error = Err>,
L: FromEure<'doc, Error = Err>,
M: FromEure<'doc, Error = Err>,
N: FromEure<'doc, Error = Err>,
Err: From<ParseError>,
impl<'doc, A, B, C, D, E, F, G, H, I, J, K, L, M, N, Err> FromEure<'doc> for (A, B, C, D, E, F, G, H, I, J, K, L, M, N)where
A: FromEure<'doc, Error = Err>,
B: FromEure<'doc, Error = Err>,
C: FromEure<'doc, Error = Err>,
D: FromEure<'doc, Error = Err>,
E: FromEure<'doc, Error = Err>,
F: FromEure<'doc, Error = Err>,
G: FromEure<'doc, Error = Err>,
H: FromEure<'doc, Error = Err>,
I: FromEure<'doc, Error = Err>,
J: FromEure<'doc, Error = Err>,
K: FromEure<'doc, Error = Err>,
L: FromEure<'doc, Error = Err>,
M: FromEure<'doc, Error = Err>,
N: FromEure<'doc, Error = Err>,
Err: From<ParseError>,
Source§impl<'doc, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, Err> FromEure<'doc> for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O)where
A: FromEure<'doc, Error = Err>,
B: FromEure<'doc, Error = Err>,
C: FromEure<'doc, Error = Err>,
D: FromEure<'doc, Error = Err>,
E: FromEure<'doc, Error = Err>,
F: FromEure<'doc, Error = Err>,
G: FromEure<'doc, Error = Err>,
H: FromEure<'doc, Error = Err>,
I: FromEure<'doc, Error = Err>,
J: FromEure<'doc, Error = Err>,
K: FromEure<'doc, Error = Err>,
L: FromEure<'doc, Error = Err>,
M: FromEure<'doc, Error = Err>,
N: FromEure<'doc, Error = Err>,
O: FromEure<'doc, Error = Err>,
Err: From<ParseError>,
impl<'doc, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, Err> FromEure<'doc> for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O)where
A: FromEure<'doc, Error = Err>,
B: FromEure<'doc, Error = Err>,
C: FromEure<'doc, Error = Err>,
D: FromEure<'doc, Error = Err>,
E: FromEure<'doc, Error = Err>,
F: FromEure<'doc, Error = Err>,
G: FromEure<'doc, Error = Err>,
H: FromEure<'doc, Error = Err>,
I: FromEure<'doc, Error = Err>,
J: FromEure<'doc, Error = Err>,
K: FromEure<'doc, Error = Err>,
L: FromEure<'doc, Error = Err>,
M: FromEure<'doc, Error = Err>,
N: FromEure<'doc, Error = Err>,
O: FromEure<'doc, Error = Err>,
Err: From<ParseError>,
Source§impl<'doc, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Err> FromEure<'doc> for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P)where
A: FromEure<'doc, Error = Err>,
B: FromEure<'doc, Error = Err>,
C: FromEure<'doc, Error = Err>,
D: FromEure<'doc, Error = Err>,
E: FromEure<'doc, Error = Err>,
F: FromEure<'doc, Error = Err>,
G: FromEure<'doc, Error = Err>,
H: FromEure<'doc, Error = Err>,
I: FromEure<'doc, Error = Err>,
J: FromEure<'doc, Error = Err>,
K: FromEure<'doc, Error = Err>,
L: FromEure<'doc, Error = Err>,
M: FromEure<'doc, Error = Err>,
N: FromEure<'doc, Error = Err>,
O: FromEure<'doc, Error = Err>,
P: FromEure<'doc, Error = Err>,
Err: From<ParseError>,
impl<'doc, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Err> FromEure<'doc> for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P)where
A: FromEure<'doc, Error = Err>,
B: FromEure<'doc, Error = Err>,
C: FromEure<'doc, Error = Err>,
D: FromEure<'doc, Error = Err>,
E: FromEure<'doc, Error = Err>,
F: FromEure<'doc, Error = Err>,
G: FromEure<'doc, Error = Err>,
H: FromEure<'doc, Error = Err>,
I: FromEure<'doc, Error = Err>,
J: FromEure<'doc, Error = Err>,
K: FromEure<'doc, Error = Err>,
L: FromEure<'doc, Error = Err>,
M: FromEure<'doc, Error = Err>,
N: FromEure<'doc, Error = Err>,
O: FromEure<'doc, Error = Err>,
P: FromEure<'doc, Error = Err>,
Err: From<ParseError>,
Source§impl<'doc, A, B, C, D, Err> FromEure<'doc> for (A, B, C, D)
impl<'doc, A, B, C, D, Err> FromEure<'doc> for (A, B, C, D)
Source§impl<'doc, A, B, C, Err> FromEure<'doc> for (A, B, C)where
A: FromEure<'doc, Error = Err>,
B: FromEure<'doc, Error = Err>,
C: FromEure<'doc, Error = Err>,
Err: From<ParseError>,
impl<'doc, A, B, C, Err> FromEure<'doc> for (A, B, C)where
A: FromEure<'doc, Error = Err>,
B: FromEure<'doc, Error = Err>,
C: FromEure<'doc, Error = Err>,
Err: From<ParseError>,
Source§impl<'doc, T> FromEure<'doc> for Option<T>
Option<T> is a union with variants some and none.
impl<'doc, T> FromEure<'doc> for Option<T>
Option<T> is a union with variants some and none.
$variant: some-> parse T$variant: none-> None- No
$variantand value is null -> None - No
$variantand value is not null -> try parsing as T (Some)
Source§impl<'doc, T, E, Err> FromEure<'doc> for Result<T, E>
Result<T, E> is a union with variants ok and err.
impl<'doc, T, E, Err> FromEure<'doc> for Result<T, E>
Result<T, E> is a union with variants ok and err.
$variant: ok-> parse T as Ok$variant: err-> parse E as Err- No
$variant-> try Ok first, then Err (priority-based)