1
- pub mod v1;
2
1
pub mod v2;
3
2
4
3
use datastore:: { LineageStore , TaxonStore } ;
@@ -60,7 +59,7 @@ macro_rules! create_lineages {
60
59
61
60
pub fn get_lineage_array_numeric( taxon_id: u32 , lineage_store: & LineageStore ) -> Vec <i32 > {
62
61
let lineage = lineage_store. get( taxon_id) . cloned( ) . unwrap_or_default( ) ;
63
-
62
+
64
63
vec![
65
64
$(
66
65
get_id( lineage. $field) . unwrap_or( 0 ) ,
@@ -70,7 +69,7 @@ macro_rules! create_lineages {
70
69
71
70
pub fn get_lineage_with_names( taxon_id: u32 , lineage_store: & LineageStore , taxon_store: & TaxonStore ) -> Option <LineageWithNames > {
72
71
let lineage = lineage_store. get( taxon_id) ?;
73
-
72
+
74
73
Some ( LineageWithNames {
75
74
$(
76
75
[ <$field _id>] : get_id( lineage. $field) ,
@@ -96,83 +95,70 @@ pub(crate) use create_lineages;
96
95
97
96
#[ derive( Clone , Copy ) ]
98
97
pub enum LineageVersion {
99
- V1 ,
100
98
V2
101
99
}
102
100
103
101
#[ derive( Serialize , Debug ) ]
104
102
#[ serde( untagged) ]
103
+ #[ allow( clippy:: large_enum_variant) ]
105
104
pub enum Lineage {
106
- DefaultV1 ( v1:: Lineage ) ,
107
- NamesV1 ( v1:: LineageWithNames ) ,
108
105
DefaultV2 ( v2:: Lineage ) ,
109
106
NamesV2 ( v2:: LineageWithNames )
110
107
}
111
108
112
109
pub fn get_lineage ( taxon_id : u32 , version : LineageVersion , lineage_store : & LineageStore ) -> Option < Lineage > {
113
110
match version {
114
- LineageVersion :: V1 => v1:: get_lineage ( taxon_id, lineage_store) . map ( Lineage :: DefaultV1 ) ,
115
111
LineageVersion :: V2 => v2:: get_lineage ( taxon_id, lineage_store) . map ( Lineage :: DefaultV2 )
116
112
}
117
113
}
118
114
119
115
pub fn get_empty_lineage ( version : LineageVersion ) -> Option < Lineage > {
120
116
match version {
121
- LineageVersion :: V1 => v1:: get_empty_lineage ( ) . map ( Lineage :: DefaultV1 ) ,
122
117
LineageVersion :: V2 => v2:: get_empty_lineage ( ) . map ( Lineage :: DefaultV2 )
123
118
}
124
119
}
125
120
126
121
pub fn get_lineage_array ( taxon_id : u32 , version : LineageVersion , lineage_store : & LineageStore ) -> Vec < Option < i32 > > {
127
122
match version {
128
- LineageVersion :: V1 => v1:: get_lineage_array ( taxon_id, lineage_store) ,
129
123
LineageVersion :: V2 => v2:: get_lineage_array ( taxon_id, lineage_store)
130
124
}
131
125
}
132
126
133
127
pub fn get_lineage_array_numeric ( taxon_id : u32 , version : LineageVersion , lineage_store : & LineageStore ) -> Vec < i32 > {
134
128
match version {
135
- LineageVersion :: V1 => v1:: get_lineage_array_numeric ( taxon_id, lineage_store) ,
136
129
LineageVersion :: V2 => v2:: get_lineage_array_numeric ( taxon_id, lineage_store)
137
130
}
138
131
}
139
132
140
133
pub fn get_lineage_with_names (
141
134
taxon_id : u32 ,
142
- version : LineageVersion ,
135
+ _version : LineageVersion ,
143
136
lineage_store : & LineageStore ,
144
137
taxon_store : & TaxonStore
145
138
) -> Option < Lineage > {
146
- match version {
147
- LineageVersion :: V1 => v1:: get_lineage_with_names ( taxon_id, lineage_store, taxon_store) . map ( Lineage :: NamesV1 ) ,
148
- LineageVersion :: V2 => v2:: get_lineage_with_names ( taxon_id, lineage_store, taxon_store) . map ( Lineage :: NamesV2 )
149
- }
139
+ v2:: get_lineage_with_names ( taxon_id, lineage_store, taxon_store) . map ( Lineage :: NamesV2 )
150
140
}
151
141
152
142
pub fn get_empty_lineage_with_names ( version : LineageVersion ) -> Option < Lineage > {
153
143
match version {
154
- LineageVersion :: V1 => v1:: get_empty_lineage_with_names ( ) . map ( Lineage :: NamesV1 ) ,
155
144
LineageVersion :: V2 => v2:: get_empty_lineage_with_names ( ) . map ( Lineage :: NamesV2 )
156
145
}
157
146
}
158
147
159
148
pub fn get_amount_of_ranks ( version : LineageVersion ) -> u8 {
160
149
match version {
161
- LineageVersion :: V1 => 28 ,
162
- LineageVersion :: V2 => 27
150
+ LineageVersion :: V2 => 28
163
151
}
164
152
}
165
153
166
154
pub fn get_genus_index ( version : LineageVersion ) -> u8 {
167
155
match version {
168
- LineageVersion :: V1 => 20 ,
169
- LineageVersion :: V2 => 18
156
+ LineageVersion :: V2 => 19
170
157
}
171
158
}
172
159
173
160
pub fn get_species_index ( version : LineageVersion ) -> u8 {
174
161
match version {
175
- LineageVersion :: V1 => 24 ,
176
- LineageVersion :: V2 => 22
162
+ LineageVersion :: V2 => 23
177
163
}
178
164
}
0 commit comments