pub trait PolicyRuleExt: Sized {
// Required methods
fn new<T: Resource>() -> Self;
fn api_group(self, group: impl ToString) -> Self;
fn api_groups(self, groups: impl IntoIterator<Item = impl ToString>) -> Self;
fn resource(self, resource: impl ToString) -> Self;
fn resources(
self,
resources: impl IntoIterator<Item = impl ToString>
) -> Self;
fn with_status(self) -> Self;
fn verb(self, verb: impl ToString) -> Self;
fn verbs(self, verbs: impl IntoIterator<Item = impl ToString>) -> Self;
// Provided methods
fn all_resources(self) -> Self { ... }
fn all_verbs(self) -> Self { ... }
}