diff options
| author | Abdul-Rahman Sibahi <asibahi@users.noreply.github.com> | 2024-10-31 14:52:11 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-10-31 11:52:11 +0000 |
| commit | b969c01b282287b44c3e131f8c0c53dcbb304e30 (patch) | |
| tree | fe58484bfa76e7fe7a35bf0bffdc339b24621693 /crates/typst-layout/src/inline | |
| parent | 644ed252dda1a0785d2bee577a89322416f4d950 (diff) | |
Replace `once_cell`'s `Lazy` as much as possible (#4617)
Co-authored-by: Laurenz <laurmaedje@gmail.com>
Diffstat (limited to 'crates/typst-layout/src/inline')
| -rw-r--r-- | crates/typst-layout/src/inline/box.rs | 7 | ||||
| -rw-r--r-- | crates/typst-layout/src/inline/linebreak.rs | 10 |
2 files changed, 9 insertions, 8 deletions
diff --git a/crates/typst-layout/src/inline/box.rs b/crates/typst-layout/src/inline/box.rs index 62054bea..6dfbc969 100644 --- a/crates/typst-layout/src/inline/box.rs +++ b/crates/typst-layout/src/inline/box.rs @@ -1,4 +1,5 @@ -use once_cell::unsync::Lazy; +use std::cell::LazyCell; + use typst_library::diag::SourceResult; use typst_library::engine::Engine; use typst_library::foundations::{Packed, StyleChain}; @@ -56,8 +57,8 @@ pub fn layout_box( .map(|s| s.map(Stroke::unwrap_or_default)); // Only fetch these if necessary (for clipping or filling/stroking). - let outset = Lazy::new(|| elem.outset(styles).unwrap_or_default()); - let radius = Lazy::new(|| elem.radius(styles).unwrap_or_default()); + let outset = LazyCell::new(|| elem.outset(styles).unwrap_or_default()); + let radius = LazyCell::new(|| elem.radius(styles).unwrap_or_default()); // Clip the contents, if requested. if elem.clip(styles) { diff --git a/crates/typst-layout/src/inline/linebreak.rs b/crates/typst-layout/src/inline/linebreak.rs index 7fc8b368..26621cd7 100644 --- a/crates/typst-layout/src/inline/linebreak.rs +++ b/crates/typst-layout/src/inline/linebreak.rs @@ -1,4 +1,5 @@ use std::ops::{Add, Sub}; +use std::sync::LazyLock; use az::SaturatingAs; use icu_properties::maps::{CodePointMapData, CodePointMapDataBorrowed}; @@ -7,7 +8,6 @@ use icu_provider::AsDeserializingBufferProvider; use icu_provider_adapters::fork::ForkByKeyProvider; use icu_provider_blob::BlobDataProvider; use icu_segmenter::LineSegmenter; -use once_cell::sync::Lazy; use typst_library::engine::Engine; use typst_library::layout::{Abs, Em}; use typst_library::model::Linebreaks; @@ -40,11 +40,11 @@ fn blob() -> BlobDataProvider { } /// The general line break segmenter. -static SEGMENTER: Lazy<LineSegmenter> = - Lazy::new(|| LineSegmenter::try_new_lstm_with_buffer_provider(&blob()).unwrap()); +static SEGMENTER: LazyLock<LineSegmenter> = + LazyLock::new(|| LineSegmenter::try_new_lstm_with_buffer_provider(&blob()).unwrap()); /// The line break segmenter for Chinese/Japanese text. -static CJ_SEGMENTER: Lazy<LineSegmenter> = Lazy::new(|| { +static CJ_SEGMENTER: LazyLock<LineSegmenter> = LazyLock::new(|| { let cj_blob = BlobDataProvider::try_new_from_static_blob(typst_assets::icu::ICU_CJ_SEGMENT) .unwrap(); @@ -53,7 +53,7 @@ static CJ_SEGMENTER: Lazy<LineSegmenter> = Lazy::new(|| { }); /// The Unicode line break properties for each code point. -static LINEBREAK_DATA: Lazy<CodePointMapData<LineBreak>> = Lazy::new(|| { +static LINEBREAK_DATA: LazyLock<CodePointMapData<LineBreak>> = LazyLock::new(|| { icu_properties::maps::load_line_break(&blob().as_deserializing()).unwrap() }); |
