@@ -6,10 +6,10 @@ use crate::hb::ot_layout_gsubgpos::{
6
6
} ;
7
7
use skrifa:: raw:: tables:: layout:: {
8
8
ChainedSequenceContextFormat1 , ChainedSequenceContextFormat2 , ChainedSequenceContextFormat3 ,
9
- SequenceContextFormat1 , SequenceContextFormat2 , SequenceContextFormat3 ,
9
+ SequenceContextFormat1 , SequenceContextFormat2 , SequenceContextFormat3 , SequenceLookupRecord ,
10
10
} ;
11
11
use skrifa:: raw:: types:: BigEndian ;
12
- use ttf_parser:: { opentype_layout :: SequenceLookupRecord , GlyphId } ;
12
+ use ttf_parser:: GlyphId ;
13
13
14
14
impl WouldApply for SequenceContextFormat1 < ' _ > {
15
15
fn would_apply ( & self , ctx : & WouldApplyContext ) -> bool {
@@ -47,19 +47,7 @@ impl Apply for SequenceContextFormat1<'_> {
47
47
let set = self . seq_rule_sets ( ) . get ( index) ?. ok ( ) ?;
48
48
for rule in set. seq_rules ( ) . iter ( ) . filter_map ( |rule| rule. ok ( ) ) {
49
49
let input = rule. input_sequence ( ) ;
50
- if apply_context (
51
- ctx,
52
- input,
53
- & match_glyph,
54
- rule. seq_lookup_records ( )
55
- . iter ( )
56
- . map ( |rec| SequenceLookupRecord {
57
- sequence_index : rec. sequence_index ( ) ,
58
- lookup_list_index : rec. lookup_list_index ( ) ,
59
- } ) ,
60
- )
61
- . is_some ( )
62
- {
50
+ if apply_context ( ctx, input, & match_glyph, rule. seq_lookup_records ( ) ) . is_some ( ) {
63
51
return Some ( ( ) ) ;
64
52
}
65
53
}
@@ -107,12 +95,7 @@ impl Apply for SequenceContextFormat2<'_> {
107
95
ctx,
108
96
input,
109
97
& match_class ( & input_classes) ,
110
- rule. seq_lookup_records ( )
111
- . iter ( )
112
- . map ( |rec| SequenceLookupRecord {
113
- sequence_index : rec. sequence_index ( ) ,
114
- lookup_list_index : rec. lookup_list_index ( ) ,
115
- } ) ,
98
+ rule. seq_lookup_records ( ) ,
116
99
)
117
100
. is_some ( )
118
101
{
@@ -165,12 +148,7 @@ impl Apply for SequenceContextFormat3<'_> {
165
148
input_coverages. len ( ) - 1 ,
166
149
& mut match_positions,
167
150
match_end,
168
- self . seq_lookup_records ( )
169
- . iter ( )
170
- . map ( |rec| SequenceLookupRecord {
171
- sequence_index : rec. sequence_index ( ) ,
172
- lookup_list_index : rec. lookup_list_index ( ) ,
173
- } ) ,
151
+ self . seq_lookup_records ( ) ,
174
152
) ;
175
153
Some ( ( ) )
176
154
} else {
@@ -225,12 +203,7 @@ impl Apply for ChainedSequenceContextFormat1<'_> {
225
203
input,
226
204
lookahead,
227
205
[ & match_glyph; 3 ] ,
228
- rule. seq_lookup_records ( )
229
- . iter ( )
230
- . map ( |rec| SequenceLookupRecord {
231
- sequence_index : rec. sequence_index ( ) ,
232
- lookup_list_index : rec. lookup_list_index ( ) ,
233
- } ) ,
206
+ rule. seq_lookup_records ( ) ,
234
207
)
235
208
. is_some ( )
236
209
{
@@ -310,12 +283,7 @@ impl Apply for ChainedSequenceContextFormat2<'_> {
310
283
& match_class ( & input_classes) ,
311
284
& match_class ( & lookahead_classes) ,
312
285
] ,
313
- rule. seq_lookup_records ( )
314
- . iter ( )
315
- . map ( |rec| SequenceLookupRecord {
316
- sequence_index : rec. sequence_index ( ) ,
317
- lookup_list_index : rec. lookup_list_index ( ) ,
318
- } ) ,
286
+ rule. seq_lookup_records ( ) ,
319
287
)
320
288
. is_some ( )
321
289
{
@@ -426,12 +394,7 @@ impl Apply for ChainedSequenceContextFormat3<'_> {
426
394
input_coverages. len ( ) - 1 ,
427
395
& mut match_positions,
428
396
match_end,
429
- self . seq_lookup_records ( )
430
- . iter ( )
431
- . map ( |rec| SequenceLookupRecord {
432
- sequence_index : rec. sequence_index ( ) ,
433
- lookup_list_index : rec. lookup_list_index ( ) ,
434
- } ) ,
397
+ self . seq_lookup_records ( ) ,
435
398
) ;
436
399
437
400
Some ( ( ) )
@@ -458,7 +421,7 @@ fn apply_context<T: ToU16>(
458
421
ctx : & mut hb_ot_apply_context_t ,
459
422
input : & [ T ] ,
460
423
match_func : & match_func_t ,
461
- lookups : impl Iterator < Item = SequenceLookupRecord > ,
424
+ lookups : & [ SequenceLookupRecord ] ,
462
425
) -> Option < ( ) > {
463
426
let match_func = |glyph, index| {
464
427
let value = input. get ( index as usize ) . unwrap ( ) . to_u16 ( ) ;
@@ -483,7 +446,7 @@ fn apply_context<T: ToU16>(
483
446
usize:: from ( input. len ( ) ) ,
484
447
& mut match_positions,
485
448
match_end,
486
- lookups. into_iter ( ) ,
449
+ lookups,
487
450
) ;
488
451
return Some ( ( ) ) ;
489
452
}
@@ -497,7 +460,7 @@ fn apply_chain_context<T: ToU16>(
497
460
input : & [ T ] ,
498
461
lookahead : & [ T ] ,
499
462
match_funcs : [ & match_func_t ; 3 ] ,
500
- lookups : impl Iterator < Item = SequenceLookupRecord > ,
463
+ lookups : & [ SequenceLookupRecord ] ,
501
464
) -> Option < ( ) > {
502
465
// NOTE: Whenever something in this method changes, we also need to
503
466
// change it in the `apply` implementation for ChainedContextLookup.
0 commit comments