Skip to main content

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}