Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit154ebfc

Browse files
committed
Directly expose constructors for iterators rather than relying on hard-to-discover trait stuff
1 parentac8fa20 commit154ebfc

File tree

3 files changed

+64
-44
lines changed

3 files changed

+64
-44
lines changed

‎src/decompose.rs

Lines changed: 25 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -36,23 +36,33 @@ pub struct Decompositions<I> {
3636
ready:Range<usize>,
3737
}
3838

39-
#[inline]
40-
pubfnnew_canonical<I:Iterator<Item =char>>(iter:I) ->Decompositions<I>{
41-
Decompositions{
42-
kind:self::DecompositionType::Canonical,
43-
iter: iter.fuse(),
44-
buffer:TinyVec::new(),
45-
ready:0..0,
39+
impl<I:Iterator<Item =char>>Decompositions<I>{
40+
/// Create a new decomposition iterator for canonical decompositions (NFD)
41+
///
42+
/// Note that this iterator can also be obtained by directly calling [`.nfd()`](crate::UnicodeNormalization::nfd)
43+
/// on the iterator.
44+
#[inline]
45+
pubfnnew_canonical(iter:I) ->Decompositions<I>{
46+
Decompositions{
47+
kind:self::DecompositionType::Canonical,
48+
iter: iter.fuse(),
49+
buffer:TinyVec::new(),
50+
ready:0..0,
51+
}
4652
}
47-
}
4853

49-
#[inline]
50-
pubfnnew_compatible<I:Iterator<Item =char>>(iter:I) ->Decompositions<I>{
51-
Decompositions{
52-
kind:self::DecompositionType::Compatible,
53-
iter: iter.fuse(),
54-
buffer:TinyVec::new(),
55-
ready:0..0,
54+
/// Create a new decomposition iterator for compatability decompositions (NFkD)
55+
///
56+
/// Note that this iterator can also be obtained by directly calling [`.nfd()`](crate::UnicodeNormalization::nfd)
57+
/// on the iterator.
58+
#[inline]
59+
pubfnnew_compatible(iter:I) ->Decompositions<I>{
60+
Decompositions{
61+
kind:self::DecompositionType::Compatible,
62+
iter: iter.fuse(),
63+
buffer:TinyVec::new(),
64+
ready:0..0,
65+
}
5666
}
5767
}
5868

‎src/lib.rs

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -133,22 +133,22 @@ pub trait UnicodeNormalization<I: Iterator<Item = char>> {
133133
impl<'a>UnicodeNormalization<Chars<'a>>for&'astr{
134134
#[inline]
135135
fnnfd(self) ->Decompositions<Chars<'a>>{
136-
decompose::new_canonical(self.chars())
136+
Decompositions::new_canonical(self.chars())
137137
}
138138

139139
#[inline]
140140
fnnfkd(self) ->Decompositions<Chars<'a>>{
141-
decompose::new_compatible(self.chars())
141+
Decompositions::new_compatible(self.chars())
142142
}
143143

144144
#[inline]
145145
fnnfc(self) ->Recompositions<Chars<'a>>{
146-
recompose::new_canonical(self.chars())
146+
Recompositions::new_canonical(self.chars())
147147
}
148148

149149
#[inline]
150150
fnnfkc(self) ->Recompositions<Chars<'a>>{
151-
recompose::new_compatible(self.chars())
151+
Recompositions::new_compatible(self.chars())
152152
}
153153

154154
#[inline]
@@ -165,22 +165,22 @@ impl<'a> UnicodeNormalization<Chars<'a>> for &'a str {
165165
implUnicodeNormalization<option::IntoIter<char>>forchar{
166166
#[inline]
167167
fnnfd(self) ->Decompositions<option::IntoIter<char>>{
168-
decompose::new_canonical(Some(self).into_iter())
168+
Decompositions::new_canonical(Some(self).into_iter())
169169
}
170170

171171
#[inline]
172172
fnnfkd(self) ->Decompositions<option::IntoIter<char>>{
173-
decompose::new_compatible(Some(self).into_iter())
173+
Decompositions::new_compatible(Some(self).into_iter())
174174
}
175175

176176
#[inline]
177177
fnnfc(self) ->Recompositions<option::IntoIter<char>>{
178-
recompose::new_canonical(Some(self).into_iter())
178+
Recompositions::new_canonical(Some(self).into_iter())
179179
}
180180

181181
#[inline]
182182
fnnfkc(self) ->Recompositions<option::IntoIter<char>>{
183-
recompose::new_compatible(Some(self).into_iter())
183+
Recompositions::new_compatible(Some(self).into_iter())
184184
}
185185

186186
#[inline]
@@ -197,22 +197,22 @@ impl UnicodeNormalization<option::IntoIter<char>> for char {
197197
impl<I:Iterator<Item =char>>UnicodeNormalization<I>forI{
198198
#[inline]
199199
fnnfd(self) ->Decompositions<I>{
200-
decompose::new_canonical(self)
200+
Decompositions::new_canonical(self)
201201
}
202202

203203
#[inline]
204204
fnnfkd(self) ->Decompositions<I>{
205-
decompose::new_compatible(self)
205+
Decompositions::new_compatible(self)
206206
}
207207

208208
#[inline]
209209
fnnfc(self) ->Recompositions<I>{
210-
recompose::new_canonical(self)
210+
Recompositions::new_canonical(self)
211211
}
212212

213213
#[inline]
214214
fnnfkc(self) ->Recompositions<I>{
215-
recompose::new_compatible(self)
215+
Recompositions::new_compatible(self)
216216
}
217217

218218
#[inline]

‎src/recompose.rs

Lines changed: 27 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -32,25 +32,35 @@ pub struct Recompositions<I> {
3232
last_ccc:Option<u8>,
3333
}
3434

35-
#[inline]
36-
pubfnnew_canonical<I:Iterator<Item =char>>(iter:I) ->Recompositions<I>{
37-
Recompositions{
38-
iter:super::decompose::new_canonical(iter),
39-
state:self::RecompositionState::Composing,
40-
buffer:TinyVec::new(),
41-
composee:None,
42-
last_ccc:None,
35+
impl<I:Iterator<Item =char>>Recompositions<I>{
36+
/// Create a new recomposition iterator for canonical compositions (NFC)
37+
///
38+
/// Note that this iterator can also be obtained by directly calling [`.nfc()`](crate::UnicodeNormalization::nfc)
39+
/// on the iterator.
40+
#[inline]
41+
pubfnnew_canonical(iter:I) ->Self{
42+
Recompositions{
43+
iter:Decompositions::new_canonical(iter),
44+
state:self::RecompositionState::Composing,
45+
buffer:TinyVec::new(),
46+
composee:None,
47+
last_ccc:None,
48+
}
4349
}
44-
}
4550

46-
#[inline]
47-
pubfnnew_compatible<I:Iterator<Item =char>>(iter:I) ->Recompositions<I>{
48-
Recompositions{
49-
iter:super::decompose::new_compatible(iter),
50-
state:self::RecompositionState::Composing,
51-
buffer:TinyVec::new(),
52-
composee:None,
53-
last_ccc:None,
51+
/// Create a new recomposition iterator for compatability compositions (NFkC)
52+
///
53+
/// Note that this iterator can also be obtained by directly calling [`.nfkc()`](crate::UnicodeNormalization::nfkc)
54+
/// on the iterator.
55+
#[inline]
56+
pubfnnew_compatible(iter:I) ->Self{
57+
Recompositions{
58+
iter:Decompositions::new_compatible(iter),
59+
state:self::RecompositionState::Composing,
60+
buffer:TinyVec::new(),
61+
composee:None,
62+
last_ccc:None,
63+
}
5464
}
5565
}
5666

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp