slint/internal/compiler
Milian Wolff efdecf0a13 Wrap langtype::Type::{Callback,Function} data in an Rc
This allows us to cheaply copy the langtype::Type values which
contain such a type. The runtime impact is small and barely noticable
but a sampling profiler shows a clear reduction in samples pointing
at langtype.rs, roughly reducing that from ~8.6% inclusive cost
down to 6.6% inclusive cost.

Furthermore, this allows us to share/intern common types.

Before:
```
Benchmark 1: ./target/release/slint-viewer ../slint-perf/app.slint
  Time (mean ± σ):      1.089 s ±  0.026 s    [User: 0.771 s, System: 0.216 s]
  Range (min … max):    1.046 s …  1.130 s    10 runs

        allocations:            3152149
```

After:
```
  Time (mean ± σ):      1.073 s ±  0.021 s    [User: 0.759 s, System: 0.215 s]
  Range (min … max):    1.034 s …  1.105 s    10 runs

        allocations:            3074261
```
2024-10-28 09:39:54 +01:00
..
generator Wrap langtype::Type::{Callback,Function} data in an Rc 2024-10-28 09:39:54 +01:00
LICENSES Simplify commercial license (#3063) 2024-05-31 14:06:17 +02:00
llr Wrap langtype::Type::{Callback,Function} data in an Rc 2024-10-28 09:39:54 +01:00
lookup Replace compiler dependency on css-color-parser crate 2024-07-29 13:13:53 +02:00
parser Fix parsing of unfinished import statement 2024-10-22 09:35:46 +02:00
parser-test-macro API review of the slint interpreter Compiler api 2024-07-05 17:20:08 +02:00
passes Wrap langtype::Type::{Callback,Function} data in an Rc 2024-10-28 09:39:54 +01:00
tests Wrap langtype::Type::{Callback,Function} data in an Rc 2024-10-28 09:39:54 +01:00
widgets Added rejected to TextInput (#6649) 2024-10-25 17:24:47 +02:00
build.rs Simplify commercial license (#3063) 2024-05-31 14:06:17 +02:00
builtin_macros.rs Use SmolStr in more places of the compiler infrastructure 2024-10-17 18:04:58 +02:00
builtins.slint Added rejected to TextInput (#6649) 2024-10-25 17:24:47 +02:00
Cargo.toml Fix order of glyphs in BitmapFont's glyphs when using SDFs 2024-10-23 19:36:51 +02:00
diagnostics.rs compiler: Remove version info from SourceFile again 2024-08-21 16:55:13 +02:00
embedded_resources.rs Signed DistanceField font rendering in swrenderer 2024-10-23 09:12:30 +02:00
expression_tree.rs Wrap langtype::Type::{Callback,Function} data in an Rc 2024-10-28 09:39:54 +01:00
fileaccess.rs Widget style: simplify -light/-dark handling 2024-08-20 16:55:15 +02:00
generator.rs C++: Make it possible to split up the C++ code generated for a .slint file 2024-08-20 15:53:24 +02:00
langtype.rs Wrap langtype::Type::{Callback,Function} data in an Rc 2024-10-28 09:39:54 +01:00
layout.rs Fix panic when a layout constraint has an Expression::Invalid as binding 2024-10-22 09:35:57 +02:00
lexer.rs Simplify commercial license (#3063) 2024-05-31 14:06:17 +02:00
lib.rs Speed up SDF generation 2024-10-23 09:12:30 +02:00
literals.rs Use SmolStr in more places of the compiler infrastructure 2024-10-17 18:04:58 +02:00
llr.rs Optimization: improve expression inlining 2024-08-23 17:17:15 +02:00
load_builtins.rs Wrap langtype::Type::{Callback,Function} data in an Rc 2024-10-28 09:39:54 +01:00
lookup.rs Wrap langtype::Type::{Callback,Function} data in an Rc 2024-10-28 09:39:54 +01:00
namedreference.rs Use SmolStr in more places of the compiler infrastructure 2024-10-17 18:04:58 +02:00
object_tree.rs Wrap langtype::Type::{Callback,Function} data in an Rc 2024-10-28 09:39:54 +01:00
parser.rs Use SmolStr in more places of the compiler infrastructure 2024-10-17 18:04:58 +02:00
passes.rs TextInput: use selection colors from palette (#6381) 2024-09-30 10:56:22 +00:00
pathutils.rs Use SmolStr for parts of pathutils to remove temporary allocations 2024-10-17 18:04:58 +02:00
README.md Simplify commercial license (#3063) 2024-05-31 14:06:17 +02:00
typeloader.rs PopupWindow: added close-policy property (#6614) 2024-10-24 09:27:39 +00:00
typeregister.rs Wrap langtype::Type::{Callback,Function} data in an Rc 2024-10-28 09:39:54 +01:00

The Slint Compiler Library

NOTE: This library is an internal crate of the Slint project. This crate should not be used directly by applications using Slint. You should use the slint crate instead.

WARNING: This crate does not follow the semver convention for versioning and can only be used with version = "=x.y.z" in Cargo.toml.