#[non_exhaustive]pub struct GenerateTraitPlugin;Trait Implementations§
Source§impl Debug for GenerateTraitPlugin
impl Debug for GenerateTraitPlugin
Source§impl Default for GenerateTraitPlugin
impl Default for GenerateTraitPlugin
Source§fn default() -> GenerateTraitPlugin
fn default() -> GenerateTraitPlugin
Returns the “default value” for a type. Read more
Source§impl MacroPlugin for GenerateTraitPlugin
impl MacroPlugin for GenerateTraitPlugin
Source§fn generate_code<'db>(
&self,
db: &'db dyn Database,
item_ast: ModuleItem<'db>,
_metadata: &MacroPluginMetadata<'_>,
) -> PluginResult<'db>
fn generate_code<'db>( &self, db: &'db dyn Database, item_ast: ModuleItem<'db>, _metadata: &MacroPluginMetadata<'_>, ) -> PluginResult<'db>
Generates code for an item. If no code should be generated returns None.
Otherwise, returns
PluginResult with the generated virtual submodule.Source§fn declared_attributes<'db>(&self, db: &'db dyn Database) -> Vec<SmolStrId<'db>>
fn declared_attributes<'db>(&self, db: &'db dyn Database) -> Vec<SmolStrId<'db>>
Attributes this plugin uses.
Attributes the plugin uses without declaring here are likely to cause a compilation error
for unknown attribute.
Note: They may not cause a diagnostic if some other plugin declares such attribute, but
plugin writers should not rely on that.
Source§fn declared_derives<'db>(
&self,
_db: &'db (dyn Database + 'static),
) -> Vec<SmolStrId<'db>>
fn declared_derives<'db>( &self, _db: &'db (dyn Database + 'static), ) -> Vec<SmolStrId<'db>>
Derives this plugin supplies.
Any derived classes the plugin supplies without declaring here are likely to cause a
compilation error for unknown derive.
Note: They may not cause a diagnostic if some other plugin declares such derive, but
plugin writers should not rely on that.
Source§fn executable_attributes<'db>(
&self,
_db: &'db (dyn Database + 'static),
) -> Vec<SmolStrId<'db>>
fn executable_attributes<'db>( &self, _db: &'db (dyn Database + 'static), ) -> Vec<SmolStrId<'db>>
Attributes that should mark the function as an executable.
Functions marked with executable attributes will be listed
in a dedicated field in the generated program.
Must return a subset of
declared_attributes.
This mechanism is optional.Source§fn phantom_type_attributes<'db>(
&self,
_db: &'db (dyn Database + 'static),
) -> Vec<SmolStrId<'db>>
fn phantom_type_attributes<'db>( &self, _db: &'db (dyn Database + 'static), ) -> Vec<SmolStrId<'db>>
Attributes that mark a type as a phantom type. Must return a subset of
declared_attributes.
This mechanism is optional.Source§fn plugin_type_id(&self) -> TypeId
fn plugin_type_id(&self) -> TypeId
A
TypeId of the plugin, used to compare the concrete types
of plugins given as trait objects.Auto Trait Implementations§
impl Freeze for GenerateTraitPlugin
impl RefUnwindSafe for GenerateTraitPlugin
impl Send for GenerateTraitPlugin
impl Sync for GenerateTraitPlugin
impl Unpin for GenerateTraitPlugin
impl UnwindSafe for GenerateTraitPlugin
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<'db, T> DebugDbUpcast<'db, T> for Twhere
T: ?Sized,
impl<'db, T> DebugDbUpcast<'db, T> for Twhere
T: ?Sized,
fn debug_db_upcast(&'db self) -> &'db T
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