MCPcopy Index your code
hub / github.com/ChrisFeldmeier/OpenCodeRust / from_config

Function from_config

crates/opencode-permission/src/ruleset.rs:53–78  ·  view source on GitHub ↗
(permission: &ConfigPermission)

Source from the content-addressed store, hash-verified

51}
52
53pub fn from_config(permission: &ConfigPermission) -> PermissionRuleset {
54 let mut ruleset: PermissionRuleset = Vec::new();
55
56 for (key, value) in permission.iter() {
57 match value {
58 ConfigValue::Action(action) => {
59 ruleset.push(PermissionRule {
60 permission: key.clone(),
61 action: *action,
62 pattern: "*".to_string(),
63 });
64 }
65 ConfigValue::Patterns(patterns) => {
66 for (pattern, action) in patterns.iter() {
67 ruleset.push(PermissionRule {
68 permission: key.clone(),
69 pattern: expand(pattern),
70 action: *action,
71 });
72 }
73 }
74 }
75 }
76
77 ruleset
78}
79
80pub fn merge(rulesets: &[PermissionRuleset]) -> PermissionRuleset {
81 rulesets.iter().flat_map(|r| r.clone()).collect()

Calls 3

newFunction · 0.85
expandFunction · 0.85
cloneMethod · 0.45