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-library/src/text | |
| 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-library/src/text')
| -rw-r--r-- | crates/typst-library/src/text/mod.rs | 4 | ||||
| -rw-r--r-- | crates/typst-library/src/text/raw.rs | 13 |
2 files changed, 8 insertions, 9 deletions
diff --git a/crates/typst-library/src/text/mod.rs b/crates/typst-library/src/text/mod.rs index acf100b5..6aeebbba 100644 --- a/crates/typst-library/src/text/mod.rs +++ b/crates/typst-library/src/text/mod.rs @@ -29,12 +29,12 @@ pub use self::smartquote::*; pub use self::space::*; use std::fmt::{self, Debug, Formatter}; +use std::sync::LazyLock; use ecow::{eco_format, EcoString}; use icu_properties::sets::CodePointSetData; use icu_provider::AsDeserializingBufferProvider; use icu_provider_blob::BlobDataProvider; -use once_cell::sync::Lazy; use rustybuzz::Feature; use smallvec::SmallVec; use ttf_parser::Tag; @@ -1275,7 +1275,7 @@ cast! { /// Whether a codepoint is Unicode `Default_Ignorable`. pub fn is_default_ignorable(c: char) -> bool { /// The set of Unicode default ignorables. - static DEFAULT_IGNORABLE_DATA: Lazy<CodePointSetData> = Lazy::new(|| { + static DEFAULT_IGNORABLE_DATA: LazyLock<CodePointSetData> = LazyLock::new(|| { icu_properties::sets::load_default_ignorable_code_point( &BlobDataProvider::try_new_from_static_blob(typst_assets::icu::ICU) .unwrap() diff --git a/crates/typst-library/src/text/raw.rs b/crates/typst-library/src/text/raw.rs index 5ce77348..8691afcb 100644 --- a/crates/typst-library/src/text/raw.rs +++ b/crates/typst-library/src/text/raw.rs @@ -1,10 +1,9 @@ +use std::cell::LazyCell; use std::hash::Hash; use std::ops::Range; -use std::sync::Arc; +use std::sync::{Arc, LazyLock}; use ecow::{eco_format, EcoString, EcoVec}; -use once_cell::sync::Lazy; -use once_cell::unsync::Lazy as UnsyncLazy; use syntect::highlighting::{self as synt, Theme}; use syntect::parsing::{SyntaxDefinition, SyntaxSet, SyntaxSetBuilder}; use typst_syntax::{split_newlines, LinkedNode, Span, Spanned}; @@ -325,7 +324,7 @@ impl Packed<RawElem> { .map(|s| s.to_lowercase()) .or(Some("txt".into())); - let extra_syntaxes = UnsyncLazy::new(|| { + let extra_syntaxes = LazyCell::new(|| { load_syntaxes(&elem.syntaxes(styles), &elem.syntaxes_data(styles)).unwrap() }); let non_highlighted_result = |lines: EcoVec<(EcoString, Span)>| { @@ -838,11 +837,11 @@ fn parse_theme( /// /// Syntax set is generated from the syntaxes from the `bat` project /// <https://github.com/sharkdp/bat/tree/master/assets/syntaxes> -pub static RAW_SYNTAXES: Lazy<syntect::parsing::SyntaxSet> = - Lazy::new(two_face::syntax::extra_no_newlines); +pub static RAW_SYNTAXES: LazyLock<syntect::parsing::SyntaxSet> = + LazyLock::new(two_face::syntax::extra_no_newlines); /// The default theme used for syntax highlighting. -pub static RAW_THEME: Lazy<synt::Theme> = Lazy::new(|| synt::Theme { +pub static RAW_THEME: LazyLock<synt::Theme> = LazyLock::new(|| synt::Theme { name: Some("Typst Light".into()), author: Some("The Typst Project Developers".into()), settings: synt::ThemeSettings::default(), |
