VFS in external crate (#297)

* vroom

* Port dir middleware

* Filter rules

* Directory metadata

* Project support

* Enable Lua support

* StringValue support

* CSV

* rbxm, rbxmx, and rbxlx

* JSON models

* Clean up some warnings

* Strip out PathMap

* Unwatch paths when they're reported as removed

* Fix 'rojo upload' behavior

* Upgrade to Insta 0.13.1

* Update dependencies

* Release 0.6.0-alpha.2

* Fix bad merge

* Replace MemoryBackend with InMemoryFs

* Sledgehammer tests into passing for now

* Txt middleware

* Update easy snapshot tests

* Lua tests

* Project middleware tests

* Try to fix test failures by sorting

* Port first set of serve session tests

* Add InMemoryFs::raise_event

* Finish porting serve session tests

* Remove UI code for introspecting VFS for now

* VFS docs
This commit is contained in:
Lucien Greathouse 2020-03-10 17:38:49 -07:00 • committed by GitHub
parent a884f693ae
commit 477e0ada32
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
38 changed files with 846 additions and 2509 deletions

View file

@ -1,4 +1,4 @@
mod memory_backend;
mod in_memory_fs;
mod noop_backend;
mod snapshot;
mod std_backend;
@ -7,7 +7,7 @@ use std::io;
use std::path::{Path, PathBuf};
use std::sync::{Arc, Mutex, MutexGuard};
pub use memory_backend::MemoryBackend;
pub use in_memory_fs::InMemoryFs;
pub use noop_backend::NoopBackend;
pub use snapshot::VfsSnapshot;
pub use std_backend::StdBackend;
@ -18,9 +18,9 @@ mod sealed {
/// Sealing trait for VfsBackend.
pub trait Sealed {}
impl Sealed for MemoryBackend {}
impl Sealed for NoopBackend {}
impl Sealed for StdBackend {}
impl Sealed for InMemoryFs {}
}
/// Trait that transforms `io::Result<T>` into `io::Result<Option<T>>`.
@ -107,6 +107,8 @@ impl Metadata {
}
}
/// Represents an event that a filesystem can raise that might need to be
/// handled.
#[derive(Debug)]
#[non_exhaustive]
pub enum VfsEvent {