luaur_cli_lib/functions/split_path.rs
1pub fn split_path(path: &str) -> alloc::vec::Vec<&str> {
2 let mut components = alloc::vec::Vec::new();
3
4 let mut pos = 0;
5 let bytes = path.as_bytes();
6
7 while let Some(next_pos_offset) = bytes[pos..].iter().position(|&b| b == b'\\' || b == b'/') {
8 let next_pos = pos + next_pos_offset;
9 components.push(&path[pos..next_pos]);
10 pos = next_pos + 1;
11 }
12
13 components.push(&path[pos..]);
14
15 components
16}