Skip to main content

Module attr

Module attr 

Source
Expand description

Parsing utilities for #[rapx::requires(...)] outer attributes.

This module converts a raw #[rapx::requires(...)] attribute string into a structured representation that the verification analysis can consume without depending on syn expression details in later stages.

The currently supported shape is:

#[rapx::requires(property_call, kind = "...")]

where kind = "..." applies to the property in the same attribute.

Structsยง

AttrProperty ๐Ÿ”’
The raw syntactic form of a property call tag(arg0, arg1, ...) parsed from an attribute โ€” the unevaluated stage, before semantic resolution into a Property.
RequireOuterAttribute ๐Ÿ”’
A thin wrapper that allows parsing exactly one outer attribute from a string.

Functionsยง

is_expected_syn_rapx_attr ๐Ÿ”’
Check whether an attribute path is exactly rapx::<expected_name>.
parse_property_arg ๐Ÿ”’
Parse a single property argument as an Expr.
parse_property_head ๐Ÿ”’
Parse a property call head tag(arg0, arg1, ...).
parse_rapx_attr ๐Ÿ”’
Parse a raw attribute string into a structured requires property.
strip_lifetime_ticks ๐Ÿ”’
Strips the leading ' from Rust lifetime tokens so that syn can parse them as regular identifier expressions inside attribute arguments. For example, 'a becomes a, 'static becomes static.
type_to_arg_expr ๐Ÿ”’
Convert a parsed argument Type back into the Expr form expected by the property builder: plain paths stay Expr::Path, everything else (generics, arrays, tuples, references) becomes Expr::Verbatim.