pub struct MockWorkspace { /* private fields */ }Expand description
A deterministic in-memory workspace for VFS and runtime tests.
Paths accepted by this type may be relative to the workspace root or already
absolute. File writes are upserts because Tinymist’s runtime-facing
FileChangeSet insert side also represents both creates and updates.
Implementations§
Source§impl MockWorkspace
impl MockWorkspace
Sourcepub fn new(root: impl Into<PathBuf>) -> Self
pub fn new(root: impl Into<PathBuf>) -> Self
Creates an empty mock workspace at the given root.
Sourcepub fn builder(root: impl Into<PathBuf>) -> MockWorkspaceBuilder
pub fn builder(root: impl Into<PathBuf>) -> MockWorkspaceBuilder
Creates a builder for a mock workspace at the given root.
Sourcepub fn default_builder() -> MockWorkspaceBuilder
pub fn default_builder() -> MockWorkspaceBuilder
Creates a builder for a mock workspace at the default test root.
Sourcepub fn path(&self, path: impl AsRef<Path>) -> PathBuf
pub fn path(&self, path: impl AsRef<Path>) -> PathBuf
Resolves a test path against the workspace root.
Sourcepub fn immut_path(&self, path: impl AsRef<Path>) -> ImmutPath
pub fn immut_path(&self, path: impl AsRef<Path>) -> ImmutPath
Resolves a test path against the workspace root as an immutable path.
Sourcepub fn virtual_path(&self, path: impl AsRef<Path>) -> FileResult<VirtualPath>
pub fn virtual_path(&self, path: impl AsRef<Path>) -> FileResult<VirtualPath>
Resolves a test path as a Typst virtual path inside the workspace.
Sourcepub fn file_id(&self, path: impl AsRef<Path>) -> FileResult<FileId>
pub fn file_id(&self, path: impl AsRef<Path>) -> FileResult<FileId>
Resolves a test path as a workspace FileId.
Sourcepub fn access_model(&self) -> MockPathAccess
pub fn access_model(&self) -> MockPathAccess
Creates path access for a Tinymist VFS.
Sourcepub fn vfs(&self) -> Vfs<MockPathAccess>
pub fn vfs(&self) -> Vfs<MockPathAccess>
Creates a VFS backed by this workspace.
Sourcepub fn read(&self, path: impl AsRef<Path>) -> FileResult<Bytes>
pub fn read(&self, path: impl AsRef<Path>) -> FileResult<Bytes>
Reads bytes from the in-memory workspace.
Sourcepub fn contains(&self, path: impl AsRef<Path>) -> bool
pub fn contains(&self, path: impl AsRef<Path>) -> bool
Returns whether a file exists in the in-memory workspace.
Sourcepub fn write_source(
&self,
path: impl AsRef<Path>,
source: impl Into<String>,
) -> MockChange
pub fn write_source( &self, path: impl AsRef<Path>, source: impl Into<String>, ) -> MockChange
Creates or updates a Typst source file.
Sourcepub fn create_source(
&self,
path: impl AsRef<Path>,
source: impl Into<String>,
) -> MockChange
pub fn create_source( &self, path: impl AsRef<Path>, source: impl Into<String>, ) -> MockChange
Creates a Typst source file.
Sourcepub fn update_source(
&self,
path: impl AsRef<Path>,
source: impl Into<String>,
) -> MockChange
pub fn update_source( &self, path: impl AsRef<Path>, source: impl Into<String>, ) -> MockChange
Updates a Typst source file.
Sourcepub fn write_bytes(&self, path: impl AsRef<Path>, bytes: Bytes) -> MockChange
pub fn write_bytes(&self, path: impl AsRef<Path>, bytes: Bytes) -> MockChange
Creates or updates a file with arbitrary bytes.
Sourcepub fn remove(&self, path: impl AsRef<Path>) -> FileResult<MockChange>
pub fn remove(&self, path: impl AsRef<Path>) -> FileResult<MockChange>
Removes a file from the in-memory workspace.
Sourcepub fn rename(
&self,
from: impl AsRef<Path>,
to: impl AsRef<Path>,
) -> FileResult<MockChange>
pub fn rename( &self, from: impl AsRef<Path>, to: impl AsRef<Path>, ) -> FileResult<MockChange>
Renames a file inside the in-memory workspace.
Sourcepub fn sync_changeset(&self) -> FileChangeSet
pub fn sync_changeset(&self) -> FileChangeSet
Returns a changeset that syncs the current workspace files.
Sourcepub fn sync_filesystem_event(&self) -> FilesystemEvent
pub fn sync_filesystem_event(&self) -> FilesystemEvent
Returns a filesystem event that syncs the current workspace files.
Sourcepub fn sync_memory_event(&self) -> MemoryEvent
pub fn sync_memory_event(&self) -> MemoryEvent
Returns a memory event that syncs the current workspace files.
Trait Implementations§
Source§impl Clone for MockWorkspace
impl Clone for MockWorkspace
Source§fn clone(&self) -> MockWorkspace
fn clone(&self) -> MockWorkspace
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for MockWorkspace
impl Debug for MockWorkspace
Auto Trait Implementations§
impl Freeze for MockWorkspace
impl RefUnwindSafe for MockWorkspace
impl Send for MockWorkspace
impl Sync for MockWorkspace
impl Unpin for MockWorkspace
impl UnwindSafe for MockWorkspace
Blanket Implementations§
Source§impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for Swhere
T: Real + Zero + Arithmetics + Clone,
Swp: WhitePoint<T>,
Dwp: WhitePoint<T>,
D: AdaptFrom<S, Swp, Dwp, T>,
impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for Swhere
T: Real + Zero + Arithmetics + Clone,
Swp: WhitePoint<T>,
Dwp: WhitePoint<T>,
D: AdaptFrom<S, Swp, Dwp, T>,
Source§fn adapt_into_using<M>(self, method: M) -> Dwhere
M: TransformMatrix<T>,
fn adapt_into_using<M>(self, method: M) -> Dwhere
M: TransformMatrix<T>,
Source§fn adapt_into(self) -> D
fn adapt_into(self) -> D
§impl<S, T> ArcInto<T> for S
impl<S, T> ArcInto<T> for S
§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
§type ArchivedMetadata = ()
type ArchivedMetadata = ()
§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Source§impl<T, C> ArraysFrom<C> for Twhere
C: IntoArrays<T>,
impl<T, C> ArraysFrom<C> for Twhere
C: IntoArrays<T>,
Source§fn arrays_from(colors: C) -> T
fn arrays_from(colors: C) -> T
Source§impl<T, C> ArraysInto<C> for Twhere
C: FromArrays<T>,
impl<T, C> ArraysInto<C> for Twhere
C: FromArrays<T>,
Source§fn arrays_into(self) -> C
fn arrays_into(self) -> C
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for Uwhere
T: FromCam16Unclamped<WpParam, U>,
impl<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for Uwhere
T: FromCam16Unclamped<WpParam, U>,
Source§type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar
type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar
parameters when converting.Source§fn cam16_into_unclamped(
self,
parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>,
) -> T
fn cam16_into_unclamped( self, parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>, ) -> T
self into C, using the provided parameters.Source§impl<T> CheckedAs for T
impl<T> CheckedAs for T
Source§fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
Source§impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
Source§fn checked_cast_from(src: Src) -> Option<Dst>
fn checked_cast_from(src: Src) -> Option<Dst>
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T, C> ComponentsFrom<C> for Twhere
C: IntoComponents<T>,
impl<T, C> ComponentsFrom<C> for Twhere
C: IntoComponents<T>,
Source§fn components_from(colors: C) -> T
fn components_from(colors: C) -> T
§impl<F, W, T, D> Deserialize<With<T, W>, D> for F
impl<F, W, T, D> Deserialize<With<T, W>, D> for F
§fn deserialize(
&self,
deserializer: &mut D,
) -> Result<With<T, W>, <D as Fallible>::Error>
fn deserialize( &self, deserializer: &mut D, ) -> Result<With<T, W>, <D as Fallible>::Error>
§impl<T> Filterable for T
impl<T> Filterable for T
Source§impl<T> FromAngle<T> for T
impl<T> FromAngle<T> for T
Source§fn from_angle(angle: T) -> T
fn from_angle(angle: T) -> T
angle.Source§impl<T, U> FromStimulus<U> for Twhere
U: IntoStimulus<T>,
impl<T, U> FromStimulus<U> for Twhere
U: IntoStimulus<T>,
Source§fn from_stimulus(other: U) -> T
fn from_stimulus(other: U) -> T
other into Self, while performing the appropriate scaling,
rounding and clamping.Source§impl<T, U> IntoAngle<U> for Twhere
U: FromAngle<T>,
impl<T, U> IntoAngle<U> for Twhere
U: FromAngle<T>,
Source§fn into_angle(self) -> U
fn into_angle(self) -> U
T.Source§impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for Uwhere
T: Cam16FromUnclamped<WpParam, U>,
impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for Uwhere
T: Cam16FromUnclamped<WpParam, U>,
Source§type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar
type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar
parameters when converting.Source§fn into_cam16_unclamped(
self,
parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>,
) -> T
fn into_cam16_unclamped( self, parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>, ) -> T
self into C, using the provided parameters.Source§impl<T, U> IntoColor<U> for Twhere
U: FromColor<T>,
impl<T, U> IntoColor<U> for Twhere
U: FromColor<T>,
Source§fn into_color(self) -> U
fn into_color(self) -> U
Source§impl<T, U> IntoColorUnclamped<U> for Twhere
U: FromColorUnclamped<T>,
impl<T, U> IntoColorUnclamped<U> for Twhere
U: FromColorUnclamped<T>,
Source§fn into_color_unclamped(self) -> U
fn into_color_unclamped(self) -> U
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> IntoStimulus<T> for T
impl<T> IntoStimulus<T> for T
Source§fn into_stimulus(self) -> T
fn into_stimulus(self) -> T
self into T, while performing the appropriate scaling,
rounding and clamping.§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Source§impl<T> OverflowingAs for T
impl<T> OverflowingAs for T
Source§fn overflowing_as<Dst>(self) -> (Dst, bool)where
T: OverflowingCast<Dst>,
fn overflowing_as<Dst>(self) -> (Dst, bool)where
T: OverflowingCast<Dst>,
Source§impl<Src, Dst> OverflowingCastFrom<Src> for Dstwhere
Src: OverflowingCast<Dst>,
impl<Src, Dst> OverflowingCastFrom<Src> for Dstwhere
Src: OverflowingCast<Dst>,
Source§fn overflowing_cast_from(src: Src) -> (Dst, bool)
fn overflowing_cast_from(src: Src) -> (Dst, bool)
§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> SaturatingAs for T
impl<T> SaturatingAs for T
Source§fn saturating_as<Dst>(self) -> Dstwhere
T: SaturatingCast<Dst>,
fn saturating_as<Dst>(self) -> Dstwhere
T: SaturatingCast<Dst>,
Source§impl<Src, Dst> SaturatingCastFrom<Src> for Dstwhere
Src: SaturatingCast<Dst>,
impl<Src, Dst> SaturatingCastFrom<Src> for Dstwhere
Src: SaturatingCast<Dst>,
Source§fn saturating_cast_from(src: Src) -> Dst
fn saturating_cast_from(src: Src) -> Dst
Source§impl<T, C> TryComponentsInto<C> for Twhere
C: TryFromComponents<T>,
impl<T, C> TryComponentsInto<C> for Twhere
C: TryFromComponents<T>,
Source§type Error = <C as TryFromComponents<T>>::Error
type Error = <C as TryFromComponents<T>>::Error
try_into_colors fails to cast.Source§fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>
fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>
Source§impl<T, U> TryIntoColor<U> for Twhere
U: TryFromColor<T>,
impl<T, U> TryIntoColor<U> for Twhere
U: TryFromColor<T>,
Source§fn try_into_color(self) -> Result<U, OutOfBounds<U>>
fn try_into_color(self) -> Result<U, OutOfBounds<U>>
OutOfBounds error is returned which contains
the unclamped color. Read more