Struct stringsext::mission::Utf8Filter
source · pub struct Utf8Filter {
pub af: u128,
pub ubf: u64,
pub grep_char: Option<u8>,
}
Expand description
When the decoder finds a valid Unicode character, it decodes it into UTF-8.
The leading byte of this UTF-8 multi-byte-character must then pass an
additional filter before being printed: the so called Utf8Filter
. It comes
with three independant filter criteria:
- The Ascii-Filter
Utf8Filter::asf
, - the Unicode-block-filter
Utf8Filter::ubf
, - and the
Utf8::must_hame
-filter.
The Ascii-Filter Utf8Filter::asf
and the Unicode-block-filter
Utf8Filter::ubf
are implemented by the Utf8Filter::pass_filter()
function. The Utf8::grep_char
-filter is implemented by the
helper::SplitStr::next()
iterator function.
Fields§
§af: u128
Every bit 0..=127
of the Utf8Filer::af
filter parameter maps to one
ASCII-code-position 0x00..=0x7F
that is checked by pass_filter()
against the UTF-8 leading byte of the incoming stream. For example if the
leading byte’s code is 32 and the Utf8Filter::af
has bit number 32 set,
then the character passes the filter. If not, it is rejected.
ubf: u64
Every bit 0..=63
maps to one leading-byte’s code position
0xC0..0xFF
, e.g. bit 0 is set -> all characters with leading byte 0xC0
pass the filter,
If bit 1 is set -> all characters with all leading byte 0xC1
, …
pass the filter. Otherwise, the character is rejected.
grep_char: Option<u8>
If Some()
, a finding must have at least one leading byte equal to the
grep_char
ASCII code. This is useful when you grep for path-strings:
e.g. “0x2f” or “0x5c”.
Implementations§
source§impl Utf8Filter
impl Utf8Filter
sourcepub fn pass_af_filter(&self, b: u8) -> bool
pub fn pass_af_filter(&self, b: u8) -> bool
This function applies the Ascii-Filter Utf8Filter::asf
to the
UTF-8 leading byte b
. It assumes that b<=0x7f
!
sourcepub fn pass_ubf_filter(&self, b: u8) -> bool
pub fn pass_ubf_filter(&self, b: u8) -> bool
This function applies the Unicode-Block-Filter Utf8Filter::ubf
to the
UTF-8 leading byte b
. It assumes that b>0x7f
!
Trait Implementations§
source§impl Clone for Utf8Filter
impl Clone for Utf8Filter
source§fn clone(&self) -> Utf8Filter
fn clone(&self) -> Utf8Filter
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for Utf8Filter
impl Debug for Utf8Filter
source§impl Ord for Utf8Filter
impl Ord for Utf8Filter
Needed for merging.
source§impl PartialEq for Utf8Filter
impl PartialEq for Utf8Filter
source§fn eq(&self, other: &Utf8Filter) -> bool
fn eq(&self, other: &Utf8Filter) -> bool
self
and other
values to be equal, and is used
by ==
.source§impl PartialOrd for Utf8Filter
impl PartialOrd for Utf8Filter
Needed for merging.
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
self
and other
) and is used by the <=
operator. Read more