|
|
@ -35,18 +35,12 @@ pub(crate) struct UProbe {
|
|
|
|
|
|
|
|
|
|
|
|
impl UProbe {
|
|
|
|
impl UProbe {
|
|
|
|
pub(crate) fn parse(kind: UProbeKind, attrs: TokenStream, item: TokenStream) -> Result<UProbe> {
|
|
|
|
pub(crate) fn parse(kind: UProbeKind, attrs: TokenStream, item: TokenStream) -> Result<UProbe> {
|
|
|
|
let mut path = None;
|
|
|
|
let mut args = syn::parse2(attrs)?;
|
|
|
|
let mut function = None;
|
|
|
|
let path = pop_string_arg(&mut args, "path");
|
|
|
|
let mut offset = None;
|
|
|
|
let function = pop_string_arg(&mut args, "function");
|
|
|
|
let mut sleepable = false;
|
|
|
|
let offset = pop_string_arg(&mut args, "offset").map(|v| v.parse::<u64>().unwrap());
|
|
|
|
if !attrs.is_empty() {
|
|
|
|
let sleepable = pop_bool_arg(&mut args, "sleepable");
|
|
|
|
let mut args = syn::parse2(attrs)?;
|
|
|
|
err_on_unknown_args(&args)?;
|
|
|
|
path = pop_string_arg(&mut args, "path");
|
|
|
|
|
|
|
|
function = pop_string_arg(&mut args, "function");
|
|
|
|
|
|
|
|
offset = pop_string_arg(&mut args, "offset").map(|v| v.parse::<u64>().unwrap());
|
|
|
|
|
|
|
|
sleepable = pop_bool_arg(&mut args, "sleepable");
|
|
|
|
|
|
|
|
err_on_unknown_args(&args)?;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
let item = syn::parse2(item)?;
|
|
|
|
let item = syn::parse2(item)?;
|
|
|
|
Ok(UProbe {
|
|
|
|
Ok(UProbe {
|
|
|
|