4 releases (1 stable)

1.0.0 Oct 18, 2022
0.3.1 Jun 3, 2022
0.3.0 Jun 1, 2022
0.2.0 Apr 21, 2021

#1607 in Procedural macros

Download history 1246/week @ 2023-12-06 1577/week @ 2023-12-13 724/week @ 2023-12-20 507/week @ 2023-12-27 826/week @ 2024-01-03 1416/week @ 2024-01-10 1918/week @ 2024-01-17 1305/week @ 2024-01-24 1687/week @ 2024-01-31 1706/week @ 2024-02-07 2066/week @ 2024-02-14 2564/week @ 2024-02-21 1978/week @ 2024-02-28 2116/week @ 2024-03-06 1874/week @ 2024-03-13 1130/week @ 2024-03-20

7,295 downloads per month
Used in 13 crates (3 directly)

Apache-2.0

8KB
127 lines

Derive

This crate contains procedural macros for Stronghold.

GuardDebug

The GuardDebug macro is used to block inspection of a data structure. It implements the Debug trait and explicitly blocks the reading of the internal data on the structure its derived on. Instead, the data will be returned out as a (guarded) string.

Example:
#[derive(GuardDebug)]
struct Foo {
    some_data: String
}
...

let foo = Foo { some_data: "Some data"};

println!("{:?}", foo);
...

> Foo(guarded)

RequestPermissions

Implements the VariantPermission for struct/unions with PermissionValue(1). For enums, it implements ToPermissionVariants, which creates an according new enum <Ident>Permission with Unit variants, and implements VariantPermission by assigning different PermissionValue for each variant. The permission value is the "index" in the enum as exponent for the power of 2, thus from top to bottom 1, 2, 4, 8...


lib.rs:

Proc macros for Stronghold.

Dependencies

~1.5MB
~33K SLoC