| Crates.io | permission_macro |
| lib.rs | permission_macro |
| version | 0.1.1 |
| created_at | 2025-09-07 17:44:52.445389+00 |
| updated_at | 2025-09-07 20:49:13.923089+00 |
| description | A sub-crate of `permission_check`, which is used to provide more extensive support for build-time checking of permissions. |
| homepage | |
| repository | https://github.com/i-am-unknown-81514525/permission_check |
| max_upload_size | |
| id | 1828374 |
| size | 50,304 |
A sub-crate of permission_check, which is used to provide more extensive support for build-time checking of permissions.
use permission_macro::{perm_parser, perm_expr};
#[test]
fn test_1() {
let checker = perm_expr!(
((org.1047.role.admin.enact | org.1047.role.owner.enact) | (org.1047.user.write && (org.1047.user.read | org.1047.user.read_one)) | (org.1047.user.243.read && org.1047.user.243.write)) &
!(user.blacklist.enact & !user.blacklist.*)
);
let org_id = 1047;
let user_id = 243;
assert_eq!(
checker.with_perm(vec![
perm_parser!(org.{org_id}.user.{user_id}.read),
perm_parser!(org.{org_id}.user.{user_id}.write)
]),
true
);
let org_id = 1047;
let user_id = 244;
assert_eq!(
checker.with_perm(vec![
perm_parser!(org.{org_id}.user.{user_id}.read),
perm_parser!(org.{org_id}.user.{user_id}.write)
]),
false
);
}
For better example, check the README in permission_check crate