#[non_exhaustive]pub struct HookArgs {
pub hooks_core_path: Option<PathOrLit<Path>>,
pub bounds: Option<Punctuated<TypeParamBound, Plus>>,
}
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional
Struct { .. }
syntax; cannot be matched against without a wildcard ..
; and struct update syntax will not work.hooks_core_path: Option<PathOrLit<Path>>
Defaults to ::hooks::core
bounds: Option<Punctuated<TypeParamBound, Plus>>
When a hook fn borrows from a lifetime, this bound might need to be explicitly specified.
Note that all lifetimes declared in fn generics are auto captured by #[hook]
.
Thus, #[hook(bounds = "...")]
is only required for
elided lifetimes and outer lifetimes.
ⓘ
#[hook]
fn use_borrow(v: &str) -> usize {
v.len()
}
#[hook(bounds = "'_")]
fn use_borrow(v: &str) -> usize {
v.len()
}
This is equivalent to type Bounds = impl ...
in
hook_fn!(...);
hook_fn!(
type Bounds = impl '_;
fn use_borrow(v: &str) -> usize {
v.len()
}
);
Implementations§
Source§impl HookArgs
impl HookArgs
pub fn transform_item_fn(self, item_fn: ItemFn) -> (ItemFn, Option<Error>)
pub fn transform_item_fn_in_place(self, item_fn: &mut ItemFn) -> Option<Error>
pub fn from_punctuated_meta_list( meta_list: Punctuated<NestedMeta, Comma>, ) -> Result<Self>
Trait Implementations§
Source§impl FromMeta for HookArgs
impl FromMeta for HookArgs
Source§fn from_list(__items: &[NestedMeta]) -> Result<Self>
fn from_list(__items: &[NestedMeta]) -> Result<Self>
Create an instance from a list of nested meta items.
fn from_nested_meta(item: &NestedMeta) -> Result<Self, Error>
Source§fn from_meta(item: &Meta) -> Result<Self, Error>
fn from_meta(item: &Meta) -> Result<Self, Error>
Create an instance from a
syn::Meta
by dispatching to the format-appropriate
trait function. This generally should not be overridden by implementers. Read moreSource§fn from_none() -> Option<Self>
fn from_none() -> Option<Self>
When a field is omitted from a parent meta-item,
from_none
is used to attempt
recovery before a missing field error is generated. Read moreSource§fn from_word() -> Result<Self, Error>
fn from_word() -> Result<Self, Error>
Create an instance from the presence of the word in the attribute with no
additional options specified.
Source§fn from_value(value: &Lit) -> Result<Self, Error>
fn from_value(value: &Lit) -> Result<Self, Error>
Create an instance from a literal value of either
foo = "bar"
or foo("bar")
.
This dispatches to the appropriate method based on the type of literal encountered,
and generally should not be overridden by implementers. Read morefn from_expr(expr: &Expr) -> Result<Self, Error>
Source§fn from_char(value: char) -> Result<Self, Error>
fn from_char(value: char) -> Result<Self, Error>
Create an instance from a char literal in a value position.
Auto Trait Implementations§
impl Freeze for HookArgs
impl RefUnwindSafe for HookArgs
impl !Send for HookArgs
impl !Sync for HookArgs
impl Unpin for HookArgs
impl UnwindSafe for HookArgs
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