Struct hooks_macro_core::HookArgs
source · #[non_exhaustive]pub struct HookArgs {
pub hooks_core_path: Option<PathOrLit<Path>>,
pub bounds: Option<Punctuated<TypeParamBound, Add>>,
}
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, Add>>
When a hook fn borrows from a lifetime, this bound might need to be explicitly specified.
ⓘ
#[hook]
fn use_borrow<'a>(v: &'a str) -> usize {
v.len()
}
#[hook(bounds = "'a")]
fn use_borrow<'a>(v: &'a str) -> usize {
v.len()
}
This is equivalent to type Bounds = impl ...
in
hook_fn!(...);
hook_fn!(
type Bounds = impl 'a;
fn use_borrow<'a>(v: &'a 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>
§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 more§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 more§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.
§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 more§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.
§fn from_string(value: &str) -> Result<Self, Error>
fn from_string(value: &str) -> Result<Self, Error>
Create an instance from a string literal in a value position.