pub struct CompilerUniverse<F: CompilerFeat> {
pub font_resolver: Arc<F::FontResolver>,
pub registry: Arc<F::Registry>,
pub revision: NonZeroUsize,
/* private fields */
}Expand description
A universe that provides access to the operating system.
Use CompilerUniverse::new_raw to create a new universe. The concrete
implementation usually wraps this function with a more user-friendly new
function.
Use CompilerUniverse::snapshot to create a new world.
Fields§
§font_resolver: Arc<F::FontResolver>Provides font management for typst compiler.
registry: Arc<F::Registry>Provides package management for typst compiler.
revision: NonZeroUsizeThe current revision of the universe.
Implementations§
Source§impl<F: CompilerFeat> CompilerUniverse<F>
Creates, snapshots, and manages the compiler universe.
impl<F: CompilerFeat> CompilerUniverse<F>
Creates, snapshots, and manages the compiler universe.
Sourcepub fn new_raw(
entry: EntryState,
enable_html: bool,
inputs: Option<Arc<LazyHash<Dict>>>,
vfs: Vfs<F::AccessModel>,
registry: Arc<F::Registry>,
font_resolver: Arc<F::FontResolver>,
) -> Self
pub fn new_raw( entry: EntryState, enable_html: bool, inputs: Option<Arc<LazyHash<Dict>>>, vfs: Vfs<F::AccessModel>, registry: Arc<F::Registry>, font_resolver: Arc<F::FontResolver>, ) -> Self
Create a CompilerUniverse with feature implementation.
Although this function is public, it is always unstable and not intended to be used directly.
- See [
crate::TypstSystemUniverse::new] for system environment. - See [
crate::TypstBrowserUniverse::new] for browser environment.
Sourcepub fn with_entry_file(self, entry_file: PathBuf) -> Self
pub fn with_entry_file(self, entry_file: PathBuf) -> Self
Wrap driver with a given entry file.
pub fn entry_file(&self) -> Option<PathResolution>
pub fn inputs(&self) -> Arc<LazyHash<Dict>>
pub fn snapshot(&self) -> CompilerWorld<F>
pub fn computation(&self) -> Arc<WorldComputeGraph<F>>
pub fn computation_with(&self, mutant: TaskInputs) -> Arc<WorldComputeGraph<F>>
pub fn snapshot_with_entry_content( &self, content: Bytes, inputs: Option<TaskInputs>, ) -> Arc<WorldComputeGraph<F>>
pub fn snapshot_with(&self, mutant: Option<TaskInputs>) -> CompilerWorld<F>
Sourcepub fn increment_revision<T>(
&mut self,
f: impl FnOnce(&mut RevisingUniverse<'_, F>) -> T,
) -> T
pub fn increment_revision<T>( &mut self, f: impl FnOnce(&mut RevisingUniverse<'_, F>) -> T, ) -> T
Increment revision with actions.
pub fn vfs(&self) -> &Vfs<F::AccessModel>
Source§impl<F: CompilerFeat> CompilerUniverse<F>
impl<F: CompilerFeat> CompilerUniverse<F>
Sourcepub fn evict(&mut self, vfs_threshold: usize)
pub fn evict(&mut self, vfs_threshold: usize)
Clear the vfs cache that is not touched for a long time.
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 get_semantic_token_legend(&self) -> Arc<SemanticTokensLegend>
pub fn get_semantic_tokens( &self, file_path: Option<String>, encoding: OffsetEncoding, ) -> Result<Arc<Vec<SemanticToken>>>
Trait Implementations§
Source§impl<F: Debug + CompilerFeat> Debug for CompilerUniverse<F>
impl<F: Debug + CompilerFeat> Debug for CompilerUniverse<F>
Source§impl<F: CompilerFeat> EntryManager for CompilerUniverse<F>
impl<F: CompilerFeat> EntryManager for CompilerUniverse<F>
fn mutate_entry(&mut self, state: EntryState) -> SourceResult<EntryState>
Source§impl<F: CompilerFeat> EntryReader for CompilerUniverse<F>
impl<F: CompilerFeat> EntryReader for CompilerUniverse<F>
fn entry_state(&self) -> EntryState
fn main_id(&self) -> Option<FileId>
Source§impl<F: CompilerFeat> ShadowApi for CompilerUniverse<F>
impl<F: CompilerFeat> ShadowApi for CompilerUniverse<F>
Source§fn reset_shadow(&mut self)
fn reset_shadow(&mut self)
Source§fn shadow_ids(&self) -> Vec<TypstFileId>
fn shadow_ids(&self) -> Vec<TypstFileId>
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: FileId,
content: Bytes,
) -> FileResult<()>
fn map_shadow_by_id( &mut self, file_id: FileId, content: Bytes, ) -> FileResult<()>
Source§fn unmap_shadow_by_id(&mut self, file_id: FileId) -> FileResult<()>
fn unmap_shadow_by_id(&mut self, file_id: FileId) -> FileResult<()>
Auto Trait Implementations§
impl<F> Freeze for CompilerUniverse<F>
impl<F> !RefUnwindSafe for CompilerUniverse<F>
impl<F> Send for CompilerUniverse<F>
impl<F> Sync for CompilerUniverse<F>
impl<F> Unpin for CompilerUniverse<F>
impl<F> !UnwindSafe for CompilerUniverse<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
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, 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
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§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.Source§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.Source§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.Source§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.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T> Filterable for T
impl<T> Filterable for T
Source§fn filterable(
self,
filter_name: &'static str,
) -> RequestFilterDataProvider<T, fn(_: DataRequest<'_>) -> bool>
fn filterable( self, filter_name: &'static str, ) -> RequestFilterDataProvider<T, fn(_: DataRequest<'_>) -> bool>
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.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)
Source§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