pub struct ProcMacro { /* private fields */ }Expand description
A handle to a specific proc-macro (a #[proc_macro] annotated function).
It exists within the context of a specific proc-macro server – currently we share a single expander process for all macros within a workspace.
Implementations§
Source§impl ProcMacro
impl ProcMacro
Sourcepub fn kind(&self) -> ProcMacroKind
pub fn kind(&self) -> ProcMacroKind
Returns the type of procedural macro.
Sourcepub fn expand(
&self,
subtree: SubtreeView<'_, Span>,
attr: Option<SubtreeView<'_, Span>>,
env: Vec<(String, String)>,
def_site: Span,
call_site: Span,
mixed_site: Span,
current_dir: String,
) -> Result<Result<TopSubtree<Span>, String>, ServerError>
pub fn expand( &self, subtree: SubtreeView<'_, Span>, attr: Option<SubtreeView<'_, Span>>, env: Vec<(String, String)>, def_site: Span, call_site: Span, mixed_site: Span, current_dir: String, ) -> Result<Result<TopSubtree<Span>, String>, ServerError>
Expands the procedural macro by sending an expansion request to the server. This includes span information and environmental context.
Trait Implementations§
impl Eq for ProcMacro
Auto Trait Implementations§
impl Freeze for ProcMacro
impl RefUnwindSafe for ProcMacro
impl Send for ProcMacro
impl Sync for ProcMacro
impl Unpin for ProcMacro
impl UnwindSafe for ProcMacro
Blanket Implementations§
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§unsafe fn clone_to_uninit(&self, dest: *mut u8)
unsafe fn clone_to_uninit(&self, dest: *mut u8)
🔬This is a nightly-only experimental API. (
clone_to_uninit)Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§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