1
- pub mod v1;
2
1
pub mod v2;
3
2
4
3
use datastore:: { LineageStore , TaxonStore } ;
@@ -96,43 +95,36 @@ 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) ]
105
103
pub enum Lineage {
106
- DefaultV1 ( v1:: Lineage ) ,
107
- NamesV1 ( v1:: LineageWithNames ) ,
108
104
DefaultV2 ( v2:: Lineage ) ,
109
105
NamesV2 ( v2:: LineageWithNames )
110
106
}
111
107
112
108
pub fn get_lineage ( taxon_id : u32 , version : LineageVersion , lineage_store : & LineageStore ) -> Option < Lineage > {
113
109
match version {
114
- LineageVersion :: V1 => v1:: get_lineage ( taxon_id, lineage_store) . map ( Lineage :: DefaultV1 ) ,
115
110
LineageVersion :: V2 => v2:: get_lineage ( taxon_id, lineage_store) . map ( Lineage :: DefaultV2 )
116
111
}
117
112
}
118
113
119
114
pub fn get_empty_lineage ( version : LineageVersion ) -> Option < Lineage > {
120
115
match version {
121
- LineageVersion :: V1 => v1:: get_empty_lineage ( ) . map ( Lineage :: DefaultV1 ) ,
122
116
LineageVersion :: V2 => v2:: get_empty_lineage ( ) . map ( Lineage :: DefaultV2 )
123
117
}
124
118
}
125
119
126
120
pub fn get_lineage_array ( taxon_id : u32 , version : LineageVersion , lineage_store : & LineageStore ) -> Vec < Option < i32 > > {
127
121
match version {
128
- LineageVersion :: V1 => v1:: get_lineage_array ( taxon_id, lineage_store) ,
129
122
LineageVersion :: V2 => v2:: get_lineage_array ( taxon_id, lineage_store)
130
123
}
131
124
}
132
125
133
126
pub fn get_lineage_array_numeric ( taxon_id : u32 , version : LineageVersion , lineage_store : & LineageStore ) -> Vec < i32 > {
134
127
match version {
135
- LineageVersion :: V1 => v1:: get_lineage_array_numeric ( taxon_id, lineage_store) ,
136
128
LineageVersion :: V2 => v2:: get_lineage_array_numeric ( taxon_id, lineage_store)
137
129
}
138
130
}
@@ -144,35 +136,30 @@ pub fn get_lineage_with_names(
144
136
taxon_store : & TaxonStore
145
137
) -> Option < Lineage > {
146
138
match version {
147
- LineageVersion :: V1 => v1:: get_lineage_with_names ( taxon_id, lineage_store, taxon_store) . map ( Lineage :: NamesV1 ) ,
148
139
LineageVersion :: V2 => v2:: get_lineage_with_names ( taxon_id, lineage_store, taxon_store) . map ( Lineage :: NamesV2 )
149
140
}
150
141
}
151
142
152
143
pub fn get_empty_lineage_with_names ( version : LineageVersion ) -> Option < Lineage > {
153
144
match version {
154
- LineageVersion :: V1 => v1:: get_empty_lineage_with_names ( ) . map ( Lineage :: NamesV1 ) ,
155
145
LineageVersion :: V2 => v2:: get_empty_lineage_with_names ( ) . map ( Lineage :: NamesV2 )
156
146
}
157
147
}
158
148
159
149
pub fn get_amount_of_ranks ( version : LineageVersion ) -> u8 {
160
150
match version {
161
- LineageVersion :: V1 => 28 ,
162
- LineageVersion :: V2 => 27
151
+ LineageVersion :: V2 => 28
163
152
}
164
153
}
165
154
166
155
pub fn get_genus_index ( version : LineageVersion ) -> u8 {
167
156
match version {
168
- LineageVersion :: V1 => 20 ,
169
- LineageVersion :: V2 => 18
157
+ LineageVersion :: V2 => 19
170
158
}
171
159
}
172
160
173
161
pub fn get_species_index ( version : LineageVersion ) -> u8 {
174
162
match version {
175
- LineageVersion :: V1 => 24 ,
176
- LineageVersion :: V2 => 22
163
+ LineageVersion :: V2 => 23
177
164
}
178
165
}
0 commit comments