Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement MeasureUnit #4360

Merged
merged 56 commits into from
Dec 7, 2023
Merged
Changes from 7 commits
Commits
Show all changes
56 commits
Select commit Hold shift + click to select a range
ebcc3fe
Use ZeroTrie and remove dimension
younies Nov 17, 2023
aefef1a
Remove unneeded data in the data provider
younies Nov 17, 2023
c2edbd6
fix ci-job-msrv-features-3
younies Nov 17, 2023
5ea721a
Merge branch 'main' of github.com:unicode-org/icu4x into units-trie
younies Nov 22, 2023
dd9000a
use ZeroTrieSimpleAscii instead
younies Nov 22, 2023
63c44ce
Merge branch 'main' of github.com:unicode-org/icu4x into units-trie
younies Nov 23, 2023
e282232
Implement MeasureUnit
younies Nov 23, 2023
5861684
fix error
younies Nov 23, 2023
a2e5600
Implement measureunit
younies Nov 23, 2023
427b008
small fix
younies Nov 24, 2023
3440254
fix the analyzer
younies Nov 24, 2023
82bcd7c
Ready for the new data model
younies Nov 24, 2023
534fa73
silent test cases temporary
younies Nov 24, 2023
55ea5e1
add small output
younies Nov 24, 2023
27b65a0
process the bases units
younies Nov 24, 2023
2d2bc47
Fix test cases
younies Nov 24, 2023
77e459d
fix clippy
younies Nov 24, 2023
8dd3c86
use strip_prefix
younies Nov 24, 2023
dff30b7
fix get_unit_id
younies Nov 24, 2023
6427f4e
fix clippy
younies Nov 24, 2023
28fe962
Add comments
younies Nov 24, 2023
4b0a395
add comments
younies Nov 24, 2023
42ebe7f
Create a struct for `SiPrefix`
younies Nov 28, 2023
64ba8e5
use optional si prefix
younies Nov 28, 2023
f13d1cb
add "ronto" and "quecto"
younies Nov 28, 2023
a4b923c
return option si prefix
younies Nov 28, 2023
e839685
Merge branch 'main' of github.com:unicode-org/icu4x into units-trie
younies Nov 28, 2023
754d17e
fix clippy
younies Nov 28, 2023
dbd3e9c
Merge branch 'main' of github.com:unicode-org/icu4x into units-trie
younies Nov 29, 2023
01f4009
add more powers and si prefixes
younies Nov 29, 2023
e01e211
Fix the search for the id
younies Nov 29, 2023
bc6fcb8
SiPrefix without i8 instead of u8.
younies Nov 30, 2023
193ec7a
Instead of making the SiPrefix field optional, we can establish the d…
younies Nov 30, 2023
1002837
add ronna and quetta
younies Nov 30, 2023
7b19d2d
Update experimental/unitsconversion/src/measureunit.rs
younies Nov 30, 2023
d320904
fix
younies Nov 30, 2023
9fcf51a
reduce the created vectors.
younies Nov 30, 2023
bfff7dd
fix naming
younies Nov 30, 2023
d0d1a5d
Merge branch 'main' of github.com:unicode-org/icu4x into units-trie
younies Nov 30, 2023
1931b07
use split instead
younies Nov 30, 2023
9df4bac
improve
younies Nov 30, 2023
7c0916f
Merge branch 'main' of github.com:unicode-org/icu4x into units-trie
younies Nov 30, 2023
705355b
improve
younies Nov 30, 2023
5c6f1ee
small fix
younies Nov 30, 2023
c288a8a
improve
younies Nov 30, 2023
894bb60
fix clippy
younies Nov 30, 2023
bb144d4
fix comments
younies Dec 1, 2023
4ed7efb
move the static function
younies Dec 1, 2023
03ee92f
rename functions
younies Dec 1, 2023
6cc4f86
fix comment
younies Dec 1, 2023
0eff919
add todo
younies Dec 1, 2023
0acd58f
Merge branch 'main' into units-trie
younies Dec 1, 2023
fe3382d
use smallvec
younies Dec 1, 2023
e4fc883
Merge branch 'main' into units-trie
younies Dec 1, 2023
20d2013
Merge branch 'main' into units-trie
younies Dec 1, 2023
70c9f31
Merge branch 'main' into units-trie
younies Dec 4, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 52 additions & 0 deletions experimental/unitsconversion/src/provider.rs
Original file line number Diff line number Diff line change
Expand Up @@ -129,3 +129,55 @@ pub enum Exactness {
Exact = 0,
Approximate = 1,
}

#[zerovec::make_varule(MeasureUnitULE)]
robertbastian marked this conversation as resolved.
Show resolved Hide resolved
#[derive(Clone, Debug, PartialOrd, Ord, PartialEq, Eq, Default)]
#[cfg_attr(
feature = "datagen",
derive(databake::Bake),
databake(path = icu_unitsconversion::provider),
)]
#[cfg_attr(
feature = "datagen",
derive(serde::Serialize),
zerovec::derive(Serialize)
)]
#[cfg_attr(
feature = "serde",
derive(serde::Deserialize),
zerovec::derive(Deserialize)
)]
#[zerovec::derive(Debug)]
pub struct MeasureUnit<'data> {
#[cfg_attr(feature = "serde", serde(borrow))]
pub contained_units: VarZeroVec<'data, MeasureUnitItemULE>,
robertbastian marked this conversation as resolved.
Show resolved Hide resolved
}

#[zerovec::make_ule(BaseULE)]
#[cfg_attr(
feature = "datagen",
derive(serde::Serialize, databake::Bake),
databake(path = icu_unitsconversion::provider),
)]
#[cfg_attr(feature = "serde", derive(serde::Deserialize))]
#[derive(Copy, Clone, Debug, PartialOrd, Ord, PartialEq, Eq, Default)]
#[repr(u8)]
pub enum Base {
#[default]
Binary = 0,
Decimal = 1,
}

#[zerovec::make_ule(MeasureUnitItemULE)]
#[derive(Copy, Clone, Debug, PartialOrd, Ord, PartialEq, Eq, Default)]
#[cfg_attr(
feature = "datagen",
derive(serde::Serialize, databake::Bake),
databake(path = icu_unitsconversion::provider),
)]
#[cfg_attr(feature = "serde", derive(serde::Deserialize))]
pub struct MeasureUnitItem {
pub power: i8,
pub si_base: Base,
robertbastian marked this conversation as resolved.
Show resolved Hide resolved
pub unit_id: u16,
}
Loading