pub struct TypstEngine<T = TypstTemplateCollection> { /* private fields */ }Expand description
Main entry point for compiling Typst documents.
Use TypstEngine::builder() to construct an instance. You can optionally set a
main file with main_file(), which allows
compiling without specifying the file ID each time.
§Examples
With main file (compile without file ID):
static TEMPLATE: &str = "Hello World!";
static FONT: &[u8] = include_bytes!("../examples/fonts/texgyrecursor-regular.otf");
let engine = TypstEngine::builder()
.main_file(TEMPLATE)
.fonts([FONT])
.build();
// Compile the main file directly
let doc: PagedDocument = engine.compile().output.expect("Compilation failed");Without main file (must provide file ID):
static TEMPLATE: &str = "Hello World!";
static FONT: &[u8] = include_bytes!("../examples/fonts/texgyrecursor-regular.otf");
let engine = TypstEngine::builder()
.fonts([FONT])
.with_static_source_file_resolver([("template.typ", TEMPLATE)])
.build();
// Must specify file ID for each compile
let doc: PagedDocument = engine.compile("template.typ").output.expect("Compilation failed");See also: Examples directory
Implementations§
Source§impl TypstEngine<TypstTemplateCollection>
impl TypstEngine<TypstTemplateCollection>
Sourcepub fn builder() -> TypstTemplateEngineBuilder
pub fn builder() -> TypstTemplateEngineBuilder
Creates a new builder for configuring a TypstEngine.
§Example
static FONT: &[u8] = include_bytes!("../examples/fonts/texgyrecursor-regular.otf");
let engine = TypstEngine::builder()
.fonts([FONT])
.build();Source§impl TypstEngine<TypstTemplateCollection>
impl TypstEngine<TypstTemplateCollection>
Sourcepub fn compile_with_input<F, D, Doc>(
&self,
main_source_id: F,
inputs: D,
) -> Warned<Result<Doc, TypstAsLibError>>
pub fn compile_with_input<F, D, Doc>( &self, main_source_id: F, inputs: D, ) -> Warned<Result<Doc, TypstAsLibError>>
Compiles a Typst document with input data injected as sys.inputs.
The input will be available in Typst scripts via #import sys: inputs.
To change the injection location, use custom_inject_location().
§Example
static TEMPLATE: &str = "#import sys: inputs\n#inputs.name";
static FONT: &[u8] = include_bytes!("../examples/fonts/texgyrecursor-regular.otf");
let engine = TypstEngine::builder()
.fonts([FONT])
.with_static_source_file_resolver([("main.typ", TEMPLATE)])
.build();
let mut inputs = Dict::new();
inputs.insert("name".into(), "World".into_value());
let doc: PagedDocument = engine.compile_with_input("main.typ", inputs)
.output
.expect("Compilation failed");See also: resolve_static.rs
Sourcepub fn compile<F, Doc>(
&self,
main_source_id: F,
) -> Warned<Result<Doc, TypstAsLibError>>where
F: IntoFileId,
Doc: Document,
pub fn compile<F, Doc>(
&self,
main_source_id: F,
) -> Warned<Result<Doc, TypstAsLibError>>where
F: IntoFileId,
Doc: Document,
Compiles a Typst document without input data.
Source§impl TypstEngine<TypstTemplateMainFile>
impl TypstEngine<TypstTemplateMainFile>
Sourcepub fn compile_with_input<D, Doc>(
&self,
inputs: D,
) -> Warned<Result<Doc, TypstAsLibError>>
pub fn compile_with_input<D, Doc>( &self, inputs: D, ) -> Warned<Result<Doc, TypstAsLibError>>
Compiles the main file with input data injected as sys.inputs.
The input will be available in Typst scripts via #import sys: inputs.
To change the injection location, use custom_inject_location().
§Example
static TEMPLATE: &str = "#import sys: inputs\nHello #inputs.name!";
static FONT: &[u8] = include_bytes!("../examples/fonts/texgyrecursor-regular.otf");
let engine = TypstEngine::builder()
.main_file(TEMPLATE)
.fonts([FONT])
.build();
let mut inputs = Dict::new();
inputs.insert("name".into(), "World".into_value());
let doc: PagedDocument = engine.compile_with_input(inputs)
.output
.expect("Compilation failed");See also: small_example.rs
Auto Trait Implementations§
impl<T = TypstTemplateCollection> !Freeze for TypstEngine<T>
impl<T = TypstTemplateCollection> !RefUnwindSafe for TypstEngine<T>
impl<T> Send for TypstEngine<T>where
T: Send,
impl<T> Sync for TypstEngine<T>where
T: Sync,
impl<T> Unpin for TypstEngine<T>where
T: Unpin,
impl<T = TypstTemplateCollection> !UnwindSafe for TypstEngine<T>
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> 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<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