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

Function validate_view_name

atomic-cli/src/commands/split.rs:61–97  ·  view source on GitHub ↗

Validate a view name.

(name: &str)

Source from the content-addressed store, hash-verified

59
60/// Validate a view name.
61fn validate_view_name(name: &str) -> Result<(), String> {
62 if name.is_empty() {
63 return Err("View name cannot be empty".to_string());
64 }
65
66 if name.len() > MAX_VIEW_NAME_LENGTH {
67 return Err(format!(
68 "View name cannot exceed {} characters",
69 MAX_VIEW_NAME_LENGTH
70 ));
71 }
72
73 for c in INVALID_CHARS {
74 if name.contains(*c) {
75 let char_desc = match c {
76 ' ' => "spaces".to_string(),
77 '\0' => "null characters".to_string(),
78 _ => format!("'{}'", c),
79 };
80 return Err(format!("View name cannot contain {}", char_desc));
81 }
82 }
83
84 if name == "." || name == ".." {
85 return Err("View name cannot be '.' or '..'".to_string());
86 }
87
88 if name.starts_with('.') {
89 return Err("View name cannot start with a dot".to_string());
90 }
91
92 if name.ends_with('.') {
93 return Err("View name cannot end with a dot".to_string());
94 }
95
96 Ok(())
97}
98
99// Split Command
100

Callers 1

runMethod · 0.70

Calls 3

is_emptyMethod · 0.45
lenMethod · 0.45
containsMethod · 0.45

Tested by

no test coverage detected