k8s_openapi_ext/ext/
role.rs1use super::*;
2
3pub trait RoleExt: super::ResourceBuilder {
4 fn new(name: impl ToString) -> Self;
5
6 fn rule(self, rule: rbacv1::PolicyRule) -> Self {
7 self.rules([rule])
8 }
9
10 fn rules(self, rules: impl IntoIterator<Item = rbacv1::PolicyRule>) -> Self;
11}
12
13impl RoleExt for rbacv1::Role {
14 fn new(name: impl ToString) -> Self {
15 let metadata = metadata(name);
16 Self {
17 metadata,
18 ..default()
20 }
21 }
22
23 fn rules(self, rules: impl IntoIterator<Item = rbacv1::PolicyRule>) -> Self {
24 let rules = Some(rules.into_iter().collect());
25 Self { rules, ..self }
26 }
27}