Skip to main content

turbo_tasks_fs/
null_fs.rs

1//! [`NullFileSystem`], a filesystem where every path is empty/not-found.
2
3use turbo_tasks::{ValueToString, Vc};
4
5use crate::{FileContent, FileMeta, FileSystem, FileSystemPath, LinkContent, RawDirectoryContent};
6
7#[derive(ValueToString)]
8#[value_to_string("null")]
9#[turbo_tasks::value(shared)]
10pub struct NullFileSystem;
11
12#[turbo_tasks::value_impl]
13impl FileSystem for NullFileSystem {
14    #[turbo_tasks::function]
15    fn read(&self, _fs_path: FileSystemPath) -> Vc<FileContent> {
16        FileContent::NotFound.cell()
17    }
18
19    #[turbo_tasks::function]
20    fn read_link(&self, _fs_path: FileSystemPath) -> Vc<LinkContent> {
21        LinkContent::NotFound.cell()
22    }
23
24    #[turbo_tasks::function]
25    fn raw_read_dir(&self, _fs_path: FileSystemPath) -> Vc<RawDirectoryContent> {
26        RawDirectoryContent::not_found()
27    }
28
29    #[turbo_tasks::function]
30    fn write(&self, _fs_path: FileSystemPath, _content: Vc<FileContent>) {}
31
32    #[turbo_tasks::function]
33    fn write_link(&self, _fs_path: FileSystemPath, _target: Vc<LinkContent>) {}
34
35    #[turbo_tasks::function]
36    fn metadata(&self, _fs_path: FileSystemPath) -> Vc<FileMeta> {
37        FileMeta::default().cell()
38    }
39}