pub struct ScriptCode<'a> {
pub alias: Option<Cow<'a, str>>,
pub code: Cow<'a, str>,
pub date: ScriptDate,
pub name: Cow<'a, str>,
pub name_french: Cow<'a, str>,
pub num: Cow<'a, str>,
pub unicode_version: Option<(u8, u8)>,
}
Expand description
Representation of each script code with all of the information provided by the standard.
§Serde
This struct derives serde’s Deserialize
and Serialize
if you enable the
serde
feature.
Fields§
§alias: Option<Cow<'a, str>>
The Property Value Alias
as defined by unicode.org.
The definition is located here:
http://www.unicode.org/Public/UNIDATA/PropertyValueAliases.txt
code: Cow<'a, str>
4-character representation of the script code.
date: ScriptDate
The date of the introduction of the script to the standard.
name: Cow<'a, str>
The English name of the script code.
name_french: Cow<'a, str>
The French name of the script code.
num: Cow<'a, str>
Numeric 3-digit representation of the script code.
unicode_version: Option<(u8, u8)>
The version of the Unicode specification that the script was added in.
Implementations§
Source§impl ScriptCode<'_>
impl ScriptCode<'_>
Sourcepub fn all() -> &'static [ScriptCode<'static>]
pub fn all() -> &'static [ScriptCode<'static>]
Returns all of the script codes in no guarenteed order.
Sourcepub fn by_alias(alias: impl AsRef<str>) -> Option<&'static ScriptCode<'static>>
pub fn by_alias(alias: impl AsRef<str>) -> Option<&'static ScriptCode<'static>>
Retrieve a ScriptCode
via its alias
(Property Value Alias
) value if
one exists.
§Examples
use iso15924::ScriptCode;
assert!(ScriptCode::by_alias("Ahom").is_some());
Sourcepub fn by_code(code: impl AsRef<str>) -> Option<&'static ScriptCode<'static>>
pub fn by_code(code: impl AsRef<str>) -> Option<&'static ScriptCode<'static>>
Retrieve a ScriptCode
via its code
value if one exists.
§Examples
use iso15924::ScriptCode;
assert!(ScriptCode::by_code("Blis").is_some());
assert!(ScriptCode::by_code("Abza").is_none());
Sourcepub fn by_date_range(
from: Option<ScriptDate>,
to: Option<ScriptDate>,
) -> Vec<&'static ScriptCode<'static>>
pub fn by_date_range( from: Option<ScriptDate>, to: Option<ScriptDate>, ) -> Vec<&'static ScriptCode<'static>>
Retrieve a Vec
of ScriptCode
s with ScriptDate
s that are within the
range of the from
and to
given. The from
and to
are both optional,
and can either be None
or Some(ScriptDate)
for variations of the range
wanted.
§Examples
Getting all ScriptCode
s between 2005-01-01
and 2012-01-01
:
use iso15924::{ScriptCode, ScriptDate};
let date_from = ScriptDate::new(2005, 01, 01);
let date_to = ScriptDate::new(2012, 01, 01);
let scripts = ScriptCode::by_date_range(Some(date_from), Some(date_to));
Retrieving all ScriptCode
s after 2005-01-01
:
use iso15924::{ScriptCode, ScriptDate};
let date_from = ScriptDate::new(2005, 01, 01);
let scripts = ScriptCode::by_date_range(Some(date_from), None);
Retrieving all ScriptCode
s before 2012-01-01
:
use iso15924::{ScriptCode, ScriptDate};
let date_to = ScriptDate::new(2012, 01, 01);
let scripts = ScriptCode::by_date_range(None, Some(date_to));
Consequentially, you can also retrieve no values:
use iso15924::ScriptCode;
assert_eq!(0, ScriptCode::by_date_range(None, None).len());
Sourcepub fn by_name(name: impl AsRef<str>) -> Option<&'static ScriptCode<'static>>
pub fn by_name(name: impl AsRef<str>) -> Option<&'static ScriptCode<'static>>
Retrieve a ScriptCode
via its name
if it exists:
use iso15924::ScriptCode;
let script1 = ScriptCode::by_name("Adlam");
assert!(script1.is_some());
let script2 = ScriptCode::by_name("Aaaaa");
assert!(script2.is_none());
Sourcepub fn by_name_french(
name: impl AsRef<str>,
) -> Option<&'static ScriptCode<'static>>
pub fn by_name_french( name: impl AsRef<str>, ) -> Option<&'static ScriptCode<'static>>
Retrieve a ScriptCode
via its name_french
if it exists:
use iso15924::ScriptCode;
assert!(ScriptCode::by_name_french("arabe").is_some());
assert!(ScriptCode::by_name_french("aaaaa").is_none());
Trait Implementations§
Source§impl<'a> Clone for ScriptCode<'a>
impl<'a> Clone for ScriptCode<'a>
Source§fn clone(&self) -> ScriptCode<'a>
fn clone(&self) -> ScriptCode<'a>
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more