3 unstable releases
0.2.1 | Aug 23, 2023 |
---|---|
0.2.0 | Jan 15, 2023 |
0.1.0 | Oct 18, 2021 |
#449 in #storage
52 downloads per month
Used in stratisd
14KB
241 lines
stratisd_proc_macros
This crate is currently used to hold procedural macros for stratisd used to reduce boilerplate code through code generation.
#[strat_pool_impl_gen]
This macro is meant to be attached to an impl... StratPool
item. It will add
Attributes
#[pool_rollback]
: This attribute attached to a method in the impl
block indicates
that Stratis should monitor the return value of this method for potential rollback
failures and, if detected, should put the pool in maintenance only mode until the
rollback failure is corrected. All methods that need to handle a pool rollback
by definition must take a &mut self
reference so that the maintenance mode flag
may be set on rollback failure.
#[pool_mutatating_action(STATE)]
: This attribute attached to a method in the impl
block indicates that this action can mutate the internal state of the pool. This
includes any changes to the underlying data structures or metadata on the device.
All methods that take a &mut self
reference are by definition mutating actions.
However, there may also be methods with a &self
reference that are also mutating
actions. STATE corresponds to a variant of the ActionAvailability
enum such as
Full
, NoRequests
, etc.
Dependencies
~1.5MB
~37K SLoC