MCPcopy Create free account
hub / github.com/atomicdotdev/atomic / parse_permissions

Function parse_permissions

atomic-cli/src/commands/identity/agent/mod.rs:149–172  ·  view source on GitHub ↗

Parse a comma-separated permission list (`read,record,push`).

(raw: &str)

Source from the content-addressed store, hash-verified

147
148/// Parse a comma-separated permission list (`read,record,push`).
149pub fn parse_permissions(raw: &str) -> CliResult<Vec<DelegationPermission>> {
150 let mut out = Vec::new();
151 for part in raw.split(',') {
152 let part = part.trim();
153 if part.is_empty() {
154 continue;
155 }
156 let permission: DelegationPermission =
157 part.parse()
158 .map_err(|e: String| CliError::InvalidArgument {
159 message: format!("--can: {e}"),
160 })?;
161 if !out.contains(&permission) {
162 out.push(permission);
163 }
164 }
165 if out.is_empty() {
166 return Err(CliError::InvalidArgument {
167 message: "--can needs at least one permission (e.g. --can read,record,push)"
168 .to_string(),
169 });
170 }
171 Ok(out)
172}
173
174/// Parse a comma-separated pattern list, dropping blanks.
175pub fn parse_patterns(raw: &str) -> Vec<String> {

Callers 5

build_scopeMethod · 0.85
next_scopeMethod · 0.85
build_scopeMethod · 0.85

Calls 4

is_emptyMethod · 0.45
parseMethod · 0.45
containsMethod · 0.45
pushMethod · 0.45