deskc_file/
lib.rs

1use std::path::PathBuf;
2
3#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
4pub struct FileId(pub usize);
5
6#[derive(Clone, Debug)]
7pub struct InFile<T> {
8    pub id: FileId,
9    pub expr: T,
10}
11
12pub enum File {
13    Real(RealFile),
14    Virtual(VirtualFile),
15    Remote(RemoteFile),
16}
17
18pub struct RealFile {
19    pub path: PathBuf,
20}
21
22pub struct VirtualFile {
23    pub content: String,
24}
25
26pub struct RemoteFile {
27    pub uri: String,
28    pub cached_path: Option<PathBuf>,
29}