1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
use crate::io::provider::{EntryId, Path};
pub struct Location {
element: &'static str,
}
impl Location {
pub const fn new(element: &'static str) -> Self {
Self { element }
}
pub fn of(&self, mut path: Path) -> Path {
let entry_id: EntryId = EntryId::from(self.element);
path.push(entry_id);
path
}
pub fn of_server(&self) -> Path {
self.of(server())
}
pub fn of_client(&self) -> Path {
self.of(client())
}
pub fn root(&self) -> Path {
Path::single(self.element)
}
}
pub fn server() -> Path {
Path::single("@server")
}
pub fn client() -> Path {
Path::single("@self")
}