pub struct File {
pub headers: Vec<Header>,
pub prelude: Vec<TopBinding>,
pub in_kw: Option<KwIn>,
pub body: Option<Expr>,
pub eoi: EoiTok,
}Expand description
A whole .saty/.satyh file: headers, top-level bindings, in, the
document expression (main/nxtoplevel/nxtopsubseq in parser.mly).
A .satyh library is just headers + bindings + EOI, no in body
(nxtopsubseq’s bare EOI alternative) — hence body is optional:
in_kw present implies body present, checked at elaboration, not here.
Fields§
§headers: Vec<Header>§prelude: Vec<TopBinding>§in_kw: Option<KwIn>Required whenever body is present (checked at elaboration).
body: Option<Expr>Absent for a library file (nxtopsubseq’s bare EOI case).
eoi: EoiTokTrait Implementations§
Source§impl<__SyanMacro_Atom> Parse<__SyanMacro_Atom> for File
impl<__SyanMacro_Atom> Parse<__SyanMacro_Atom> for File
Source§type Error = ParseError<<__SyanMacro_Atom as Spanned>::Span>
type Error = ParseError<<__SyanMacro_Atom as Spanned>::Span>
Every error must be convertible to the universal one, so a field’s failure can become the
enclosing type’s failure with no per-field where-predicate. Stating it HERE rather than at
each derived impl is what keeps it out of the obligation graph: a per-field
<FieldTy as Parse<Atom>>::Error: Into<…> predicate re-creates a projection cycle on a
recursive field (E0275), which decycle’s bound-peeling does not break.Source§fn parse_stream<__SyanMacro_S: ParseStream<Atom = __SyanMacro_Atom>>(
__syan_stream: &mut __SyanMacro_S,
) -> Result<Self, Self::Error>
fn parse_stream<__SyanMacro_S: ParseStream<Atom = __SyanMacro_Atom>>( __syan_stream: &mut __SyanMacro_S, ) -> Result<Self, Self::Error>
Parse from a reborrowable stream. Read more
impl StructuralPartialEq for File
Auto Trait Implementations§
impl Freeze for File
impl RefUnwindSafe for File
impl Send for File
impl Sync for File
impl Unpin for File
impl UnsafeUnpin for File
impl UnwindSafe for File
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more