cairo_lang_filesystem/
test_utils.rs

1use cairo_lang_utils::Upcast;
2
3use crate::db::{AsFilesGroupMut, ExternalFiles, FilesDatabase, FilesGroup, init_files_group};
4
5// Test salsa database.
6#[salsa::database(FilesDatabase)]
7pub struct FilesDatabaseForTesting {
8    storage: salsa::Storage<FilesDatabaseForTesting>,
9}
10impl salsa::Database for FilesDatabaseForTesting {}
11impl ExternalFiles for FilesDatabaseForTesting {}
12impl Default for FilesDatabaseForTesting {
13    fn default() -> Self {
14        let mut res = Self { storage: Default::default() };
15        init_files_group(&mut res);
16        res
17    }
18}
19impl Upcast<dyn FilesGroup> for FilesDatabaseForTesting {
20    fn upcast(&self) -> &(dyn FilesGroup + 'static) {
21        self
22    }
23}
24impl AsFilesGroupMut for FilesDatabaseForTesting {
25    fn as_files_group_mut(&mut self) -> &mut (dyn FilesGroup + 'static) {
26        self
27    }
28}