turbo_tasks_fs/
null_fs.rs1use turbo_rcstr::rcstr;
4use turbo_tasks::{ValueToString, Vc};
5
6use crate::{
7 FileContent, FileMeta, FileSystem, FileSystemPath, LinkContent, RawDirectoryContent,
8 WriteLinkContent,
9};
10
11#[derive(ValueToString)]
12#[value_to_string("null")]
13#[turbo_tasks::value(shared)]
14pub struct NullFileSystem;
15
16#[turbo_tasks::value_impl]
17impl FileSystem for NullFileSystem {
18 #[turbo_tasks::function]
19 fn read(&self, _fs_path: FileSystemPath) -> Vc<FileContent> {
20 FileContent::NotFound.cell()
21 }
22
23 #[turbo_tasks::function]
24 fn read_link(&self, _fs_path: FileSystemPath) -> Vc<LinkContent> {
25 LinkContent::Invalid {
26 reason: rcstr!("the filesystem does not support symbolic links"),
27 }
28 .cell()
29 }
30
31 #[turbo_tasks::function]
32 fn is_junction_point(&self, _fs_path: FileSystemPath) -> Vc<bool> {
33 Vc::cell(false)
34 }
35
36 #[turbo_tasks::function]
37 fn raw_read_dir(&self, _fs_path: FileSystemPath) -> Vc<RawDirectoryContent> {
38 RawDirectoryContent::not_found()
39 }
40
41 #[turbo_tasks::function]
42 fn write(&self, _fs_path: FileSystemPath, _content: Vc<FileContent>) {}
43
44 #[turbo_tasks::function]
45 fn write_link(&self, _fs_path: FileSystemPath, _target: Vc<WriteLinkContent>) {}
46
47 #[turbo_tasks::function]
48 fn metadata(&self, _fs_path: FileSystemPath) -> Vc<FileMeta> {
49 FileMeta::default().cell()
50 }
51}