ocl_include/source/mod.rs
1pub mod container;
2pub mod fs;
3pub mod mem;
4
5use std::{
6 io,
7 path::{Path, PathBuf},
8};
9
10/// Something that may provide file content by its name.
11pub trait Source {
12 /// Performs file loading
13 ///
14 /// Arguments:
15 /// + `path`: absolute or relative file path,
16 /// + `dir`: directory of parent file if it contains relative include directive
17 ///
18 /// Returns on success:
19 /// + Absolute path to file
20 /// + File content
21 fn read(&self, path: &Path, dir: Option<&Path>) -> io::Result<(PathBuf, String)>;
22}
23
24pub use fs::Fs;
25pub use mem::Mem;