pub struct CompilerWorld<F: CompilerFeat> {
pub library: Arc<LazyHash<Library>>,
pub font_resolver: Arc<F::FontResolver>,
pub registry: Arc<F::Registry>,
/* private fields */
}
Fields§
§library: Arc<LazyHash<Library>>
Provides library for typst compiler.
font_resolver: Arc<F::FontResolver>
Provides font management for typst compiler.
registry: Arc<F::Registry>
Provides package management for typst compiler.
Implementations§
Source§impl<F: CompilerFeat> CompilerWorld<F>
impl<F: CompilerFeat> CompilerWorld<F>
pub fn task(&self, mutant: TaskInputs) -> CompilerWorld<F>
pub fn take_cache(&mut self) -> SourceCache
pub fn clone_cache(&mut self) -> SourceCache
pub fn take_db(&mut self) -> SourceDb
pub fn vfs(&self) -> &Vfs<F::AccessModel>
Sourcepub fn set_is_compiling(&mut self, is_compiling: bool)
pub fn set_is_compiling(&mut self, is_compiling: bool)
Sets flag to indicate whether the compiler is currently compiling.
Note: Since CompilerWorld
can be cloned, you can clone the world and
set the flag then to avoid affecting the original world.
pub fn inputs(&self) -> Arc<LazyHash<Dict>>
Sourcepub fn path_for_id(&self, id: FileId) -> Result<PathResolution, FileError>
pub fn path_for_id(&self, id: FileId) -> Result<PathResolution, FileError>
Resolve the real path for a file id.
Sourcepub fn id_for_path(&self, path: &Path) -> Option<FileId>
pub fn id_for_path(&self, path: &Path) -> Option<FileId>
Resolve the root of the workspace.
pub fn revision(&self) -> NonZeroUsize
pub fn evict_vfs(&mut self, threshold: usize)
pub fn evict_source_cache(&mut self, threshold: usize)
Sourcepub fn packages(&self) -> &[(PackageSpec, Option<EcoString>)]
pub fn packages(&self) -> &[(PackageSpec, Option<EcoString>)]
A list of all available packages and optionally descriptions for them.
This function is optional to implement. It enhances the user experience
by enabling autocompletion for packages. Details about packages from the
@preview
namespace are available from
https://packages.typst.org/preview/index.json
.
pub fn paged_task(&self) -> Cow<'_, CompilerWorld<F>>
pub fn html_task(&self) -> Cow<'_, CompilerWorld<F>>
Trait Implementations§
Source§impl<F: CompilerFeat> Clone for CompilerWorld<F>
impl<F: CompilerFeat> Clone for CompilerWorld<F>
Source§impl<F: CompilerFeat> EntryReader for CompilerWorld<F>
impl<F: CompilerFeat> EntryReader for CompilerWorld<F>
fn entry_state(&self) -> EntryState
fn main_id(&self) -> Option<FileId>
Source§impl<'a, F: CompilerFeat> Files<'a> for CompilerWorld<F>
impl<'a, F: CompilerFeat> Files<'a> for CompilerWorld<F>
Source§type FileId = FileId
type FileId = FileId
A unique identifier for files in the file provider. This will be used
for rendering diagnostic::Label
s in the corresponding source files.
Source§fn line_index(&'a self, id: FileId, given: usize) -> Result<usize, Error>
fn line_index(&'a self, id: FileId, given: usize) -> Result<usize, Error>
See [codespan_reporting::files::Files::line_index
].
Source§fn column_number(
&'a self,
id: FileId,
_: usize,
given: usize,
) -> Result<usize, Error>
fn column_number( &'a self, id: FileId, _: usize, given: usize, ) -> Result<usize, Error>
See [codespan_reporting::files::Files::column_number
].
Source§fn line_range(&'a self, id: FileId, given: usize) -> Result<Range<usize>, Error>
fn line_range(&'a self, id: FileId, given: usize) -> Result<Range<usize>, Error>
See [codespan_reporting::files::Files::line_range
].
Source§impl<F: CompilerFeat> FsProvider for CompilerWorld<F>
impl<F: CompilerFeat> FsProvider for CompilerWorld<F>
Source§fn file_path(&self, file_id: TypstFileId) -> FileResult<PathResolution>
fn file_path(&self, file_id: TypstFileId) -> FileResult<PathResolution>
id
.fn read(&self, file_id: TypstFileId) -> FileResult<Bytes>
fn read_source(&self, file_id: TypstFileId) -> FileResult<Source>
Source§impl<F: CompilerFeat> ShadowApi for CompilerWorld<F>
impl<F: CompilerFeat> ShadowApi for CompilerWorld<F>
Source§fn shadow_ids(&self) -> Vec<TypstFileId>
fn shadow_ids(&self) -> Vec<TypstFileId>
Source§fn reset_shadow(&mut self)
fn reset_shadow(&mut self)
Source§fn map_shadow(&mut self, path: &Path, content: Bytes) -> FileResult<()>
fn map_shadow(&mut self, path: &Path, content: Bytes) -> FileResult<()>
Source§fn unmap_shadow(&mut self, path: &Path) -> FileResult<()>
fn unmap_shadow(&mut self, path: &Path) -> FileResult<()>
Source§fn map_shadow_by_id(
&mut self,
file_id: TypstFileId,
content: Bytes,
) -> FileResult<()>
fn map_shadow_by_id( &mut self, file_id: TypstFileId, content: Bytes, ) -> FileResult<()>
Source§fn unmap_shadow_by_id(&mut self, file_id: TypstFileId) -> FileResult<()>
fn unmap_shadow_by_id(&mut self, file_id: TypstFileId) -> FileResult<()>
Source§impl<F: CompilerFeat> SourceWorld for CompilerWorld<F>
impl<F: CompilerFeat> SourceWorld for CompilerWorld<F>
Source§fn path_for_id(&self, id: FileId) -> Result<PathResolution, FileError>
fn path_for_id(&self, id: FileId) -> Result<PathResolution, FileError>
Resolve the real path for a file id.
fn as_world(&self) -> &dyn World
fn lookup(&self, id: FileId) -> Source
Source§impl<F: CompilerFeat> World for CompilerWorld<F>
impl<F: CompilerFeat> World for CompilerWorld<F>
Source§fn source(&self, id: FileId) -> FileResult<Source>
fn source(&self, id: FileId) -> FileResult<Source>
Try to access the specified source file.
The returned Source
file’s id does not have to match the
given id
. Due to symlinks, two different file id’s can point to the
same on-disk file. Implementers can deduplicate and return the same
Source
if they want to, but do not have to.
Source§fn today(&self, offset: Option<i64>) -> Option<Datetime>
fn today(&self, offset: Option<i64>) -> Option<Datetime>
Get the current date.
If no offset is specified, the local date should be chosen. Otherwise, the UTC date should be chosen with the corresponding offset in hours.
If this function returns None
, Typst’s datetime
function will
return an error.
Source§impl<F: CompilerFeat> WorldDeps for CompilerWorld<F>
impl<F: CompilerFeat> WorldDeps for CompilerWorld<F>
fn iter_dependencies(&self, f: &mut dyn FnMut(TypstFileId))
Auto Trait Implementations§
impl<F> !Freeze for CompilerWorld<F>
impl<F> !RefUnwindSafe for CompilerWorld<F>
impl<F> Send for CompilerWorld<F>
impl<F> Sync for CompilerWorld<F>
impl<F> Unpin for CompilerWorld<F>
impl<F> !UnwindSafe for CompilerWorld<F>
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> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§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.§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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<C> ShadowApiExt for Cwhere
C: ShadowApi,
impl<C> ShadowApiExt for Cwhere
C: ShadowApi,
Source§fn with_shadow_file<T>(
&mut self,
file_path: &Path,
content: Bytes,
f: impl FnOnce(&mut C) -> Result<T, EcoVec<SourceDiagnostic>>,
) -> Result<T, EcoVec<SourceDiagnostic>>
fn with_shadow_file<T>( &mut self, file_path: &Path, content: Bytes, f: impl FnOnce(&mut C) -> Result<T, EcoVec<SourceDiagnostic>>, ) -> Result<T, EcoVec<SourceDiagnostic>>
Wrap the driver with a given shadow file and run the inner function.
Source§fn with_shadow_file_by_id<T>(
&mut self,
file_id: FileId,
content: Bytes,
f: impl FnOnce(&mut C) -> Result<T, EcoVec<SourceDiagnostic>>,
) -> Result<T, EcoVec<SourceDiagnostic>>
fn with_shadow_file_by_id<T>( &mut self, file_id: FileId, content: Bytes, f: impl FnOnce(&mut C) -> Result<T, EcoVec<SourceDiagnostic>>, ) -> Result<T, EcoVec<SourceDiagnostic>>
Wrap the driver with a given shadow file and run the inner function by
file id.
Note: to enable this function, ShadowApi
must implement
_shadow_map_id
.
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