pub struct Impl<'a, P: Parent> { /* private fields */ }
Expand description
A helper struct for implementing functions for a given struct or enum.
Implementations§
Source§impl<'a, P: Parent> Impl<'a, P>
impl<'a, P: Parent> Impl<'a, P>
Sourcepub fn impl_outer_attr(&mut self, attr: impl AsRef<str>) -> Result
pub fn impl_outer_attr(&mut self, attr: impl AsRef<str>) -> Result
Add a outer attribute to the trait implementation
Sourcepub fn impl_inner_attr(&mut self, attr: impl AsRef<str>) -> Result
pub fn impl_inner_attr(&mut self, attr: impl AsRef<str>) -> Result
Add a inner attribute to the trait implementation
Sourcepub fn generate_fn(&mut self, name: impl Into<String>) -> FnBuilder<'_, Self>
pub fn generate_fn(&mut self, name: impl Into<String>) -> FnBuilder<'_, Self>
Sourcepub fn generate_const(
&mut self,
name: impl Into<String>,
ty: impl Into<String>,
) -> GenConst<'_>
pub fn generate_const( &mut self, name: impl Into<String>, ty: impl Into<String>, ) -> GenConst<'_>
Add a const to the trait implementation
generator.impl_for("Foo")
.generate_const("BAR", "u8")
.with_value(|b| {
b.push_parsed("5")?;
Ok(())
})?;
Generates:
ⓘ
impl Foo for <struct or enum> {
const BAR: u8 = 5;
}
Source§impl<'a> Impl<'a, Generator>
impl<'a> Impl<'a, Generator>
Sourcepub fn modify_generic_constraints<CB>(&mut self, cb: CB) -> &mut Self
pub fn modify_generic_constraints<CB>(&mut self, cb: CB) -> &mut Self
Modify the generic constraints of a type. This can be used to add additional type constraints to your implementation.
ⓘ
// Your derive:
#[derive(YourTrait)]
pub struct Foo<B> {
...
}
// With this code:
generator
.r#impl()
.modify_generic_constraints(|generics, constraints| {
for g in generics.iter_generics() {
constraints.push_generic(g, "YourTrait");
}
})
// will generate:
impl<B> Foo<B>
where B: YourTrait // <-
{
}
Note that this function is only implemented when you call .r#impl
on Generator
.
Trait Implementations§
Auto Trait Implementations§
impl<'a, P> Freeze for Impl<'a, P>
impl<'a, P> RefUnwindSafe for Impl<'a, P>where
P: RefUnwindSafe,
impl<'a, P> !Send for Impl<'a, P>
impl<'a, P> !Sync for Impl<'a, P>
impl<'a, P> Unpin for Impl<'a, P>
impl<'a, P> !UnwindSafe for Impl<'a, P>
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