Struct CompilerConfiguration

Source
pub struct CompilerConfiguration { /* private fields */ }
Expand description

The structure for configuring aspects of the compilation of .slint markup files to Rust.

Implementations§

Source§

impl CompilerConfiguration

Source

pub fn new() -> Self

Creates a new default configuration.

Source

pub fn with_include_paths(self, include_paths: Vec<PathBuf>) -> Self

Create a new configuration that includes sets the include paths used for looking up .slint imports to the specified vector of paths.

Source

pub fn with_library_paths(self, library_paths: HashMap<String, PathBuf>) -> Self

Create a new configuration that sets the library paths used for looking up @library imports to the specified map of paths.

Each library path can either be a path to a .slint file or a directory. If it’s a file, the library is imported by its name prefixed by @ (e.g. @example). The specified file is the only entry-point for the library and other files from the library won’t be accessible from the outside. If it’s a directory, a specific file in that directory must be specified when importing the library (e.g. @example/widgets.slint). This allows exposing multiple entry-points for a single library.

Compile ui/main.slint and specify an “example” library path:

let manifest_dir = std::path::PathBuf::from(std::env::var_os("CARGO_MANIFEST_DIR").unwrap());
let library_paths = std::collections::HashMap::from([(
    "example".to_string(),
    manifest_dir.join("third_party/example/ui/lib.slint"),
)]);
let config = slint_build::CompilerConfiguration::new().with_library_paths(library_paths);
slint_build::compile_with_config("ui/main.slint", config).unwrap();

Import the “example” library in ui/main.slint:

import { Example } from "@example";
Source

pub fn with_style(self, style: String) -> Self

Create a new configuration that selects the style to be used for widgets.

Source

pub fn embed_resources(self, kind: EmbedResourcesKind) -> Self

Selects how the resources such as images and font are processed.

See EmbedResourcesKind

Source

pub fn with_scale_factor(self, factor: f32) -> Self

Sets the scale factor to be applied to all px to phx conversions as constant value. This is only intended for MCU environments. Use in combination with Self::embed_resources to pre-scale images and glyphs accordingly.

Source

pub fn with_bundled_translations( self, path: impl Into<PathBuf>, ) -> CompilerConfiguration

Configures the compiler to bundle translations when compiling Slint code.

It expects the path to be the root directory of the translation files.

The translation files should be in the gettext .po format and follow this pattern: <path>/<lang>/LC_MESSAGES/<crate>.po

Source

pub fn with_sdf_fonts(self, enable: bool) -> Self

Configures the compiler to use Signed Distance Field (SDF) encoding for fonts.

This flag only takes effect when embed_resources is set to EmbedResourcesKind::EmbedForSoftwareRenderer, and requires the sdf-fonts cargo feature to be enabled.

SDF reduces the binary size by using an alternative representation for fonts, trading off some rendering quality for a smaller binary footprint. Rendering is slower and may result in slightly inferior visual output. Use this on systems with limited flash memory.

Trait Implementations§

Source§

impl Default for CompilerConfiguration

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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 more
§

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<R, P> ReadPrimitive<R> for P
where R: Read + ReadEndian<P>, P: Default,

Source§

fn read_from_little_endian(read: &mut R) -> Result<Self, Error>

Read this value from the supplied reader. Same as ReadEndian::read_from_little_endian().
Source§

fn read_from_big_endian(read: &mut R) -> Result<Self, Error>

Read this value from the supplied reader. Same as ReadEndian::read_from_big_endian().
Source§

fn read_from_native_endian(read: &mut R) -> Result<Self, Error>

Read this value from the supplied reader. Same as ReadEndian::read_from_native_endian().
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
§

impl<SS, SP> SupersetOf<SS> for SP
where SS: SubsetOf<SP>,

§

fn to_subset(&self) -> Option<SS>

The inverse inclusion map: attempts to construct self from the equivalent element of its superset. Read more
§

fn is_in_subset(&self) -> bool

Checks if self is actually part of its subset T (and can be converted to it).
§

fn to_subset_unchecked(&self) -> SS

Use with care! Same as self.to_subset but without any property checks. Always succeeds.
§

fn from_subset(element: &SS) -> SP

The inclusion map: converts self to the equivalent element of its superset.
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> ErasedDestructor for T
where T: 'static,

§

impl<T> MaybeSendSync for T