pub struct FunDecl {
pub def_id: FunDeclId,
pub item_meta: ItemMeta,
pub signature: FunSig,
pub kind: ItemKind,
pub is_global_initializer: Option<GlobalDeclId>,
pub body: Result<BodyId, Opaque>,
}
Expand description
A function definition
Fields§
§def_id: FunDeclId
§item_meta: ItemMeta
The meta data associated with the declaration.
signature: FunSig
The signature contains the inputs/output types with non-erased regions. It also contains the list of region and type parameters.
kind: ItemKind
The function kind: “regular” function, trait method declaration, etc.
is_global_initializer: Option<GlobalDeclId>
Whether this function is in fact the body of a constant/static that we turned into an initializer function.
body: Result<BodyId, Opaque>
The function body, unless the function is opaque. Opaque functions are: external functions, or local functions tagged as opaque.
Trait Implementations§
source§impl<'de> Deserialize<'de> for FunDecl
impl<'de> Deserialize<'de> for FunDecl
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
source§impl<C> FmtWithCtx<C> for FunDeclwhere
C: for<'a> SetGenerics<'a>,
for<'a, 'a, 'b> <C as SetGenerics<'a>>::C: AstFormatter + SetLocals<'b>,
for<'a, 'b> <<C as SetGenerics<'a>>::C as SetLocals<'b>>::C: AstFormatter,
impl<C> FmtWithCtx<C> for FunDeclwhere
C: for<'a> SetGenerics<'a>,
for<'a, 'a, 'b> <C as SetGenerics<'a>>::C: AstFormatter + SetLocals<'b>,
for<'a, 'b> <<C as SetGenerics<'a>>::C as SetLocals<'b>>::C: AstFormatter,
Auto Trait Implementations§
impl Freeze for FunDecl
impl RefUnwindSafe for FunDecl
impl Send for FunDecl
impl Sync for FunDecl
impl Unpin for FunDecl
impl UnwindSafe for FunDecl
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
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)§impl<I, T> ExtractContext<I, ()> for T
impl<I, T> ExtractContext<I, ()> for T
§fn extract_context(self, _original_input: I)
fn extract_context(self, _original_input: I)
Given the context attached to a nom error, and given the original
input to the nom parser, extract more the useful context information. Read more
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more§impl<I> RecreateContext<I> for I
impl<I> RecreateContext<I> for I
§fn recreate_context(_original_input: I, tail: I) -> I
fn recreate_context(_original_input: I, tail: I) -> I
Given the original input, as well as the context reported by nom,
recreate a context in the original string where the error occurred. Read more