aboutsummaryrefslogtreecommitdiff
path: root/src/implicit.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/implicit.rs')
-rw-r--r--src/implicit.rs18
1 files changed, 10 insertions, 8 deletions
diff --git a/src/implicit.rs b/src/implicit.rs
index 4344ea3..2bb3581 100644
--- a/src/implicit.rs
+++ b/src/implicit.rs
@@ -9,18 +9,17 @@
//! 3.3.4 - 3.3.6. Resolve implicit levels and types.
-use std::cmp::max;
+use core::cmp::max;
+use alloc::vec::Vec;
-use super::char_data::BidiClass;
+use super::char_data::BidiClass::{self, *};
use super::prepare::{IsolatingRunSequence, LevelRun, not_removed_by_x9, removed_by_x9};
use super::level::Level;
-use BidiClass::*;
-
/// 3.3.4 Resolving Weak Types
///
/// <http://www.unicode.org/reports/tr9/#Resolving_Weak_Types>
-#[cfg_attr(feature = "flame_it", flame)]
+#[cfg_attr(feature = "flame_it", flamer::flame)]
pub fn resolve_weak(sequence: &IsolatingRunSequence, processing_classes: &mut [BidiClass]) {
// FIXME (#8): This function applies steps W1-W6 in a single pass. This can produce
// incorrect results in cases where a "later" rule changes the value of `prev_class` seen
@@ -135,7 +134,7 @@ pub fn resolve_weak(sequence: &IsolatingRunSequence, processing_classes: &mut [B
/// 3.3.5 Resolving Neutral Types
///
/// <http://www.unicode.org/reports/tr9/#Resolving_Neutral_Types>
-#[cfg_attr(feature = "flame_it", flame)]
+#[cfg_attr(feature = "flame_it", flamer::flame)]
pub fn resolve_neutral(
sequence: &IsolatingRunSequence,
levels: &[Level],
@@ -200,7 +199,7 @@ pub fn resolve_neutral(
/// Returns the maximum embedding level in the paragraph.
///
/// <http://www.unicode.org/reports/tr9/#Resolving_Implicit_Levels>
-#[cfg_attr(feature = "flame_it", flame)]
+#[cfg_attr(feature = "flame_it", flamer::flame)]
pub fn resolve_levels(original_classes: &[BidiClass], levels: &mut [Level]) -> Level {
let mut max_level = Level::ltr();
@@ -224,5 +223,8 @@ pub fn resolve_levels(original_classes: &[BidiClass], levels: &mut [Level]) -> L
/// <http://www.unicode.org/reports/tr9/#NI>
#[allow(non_snake_case)]
fn is_NI(class: BidiClass) -> bool {
- matches!(class, B | S | WS | ON | FSI | LRI | RLI | PDI)
+ match class {
+ B | S | WS | ON | FSI | LRI | RLI | PDI => true,
+ _ => false,
+ }
}