@@ -18,8 +18,6 @@ use sorted_set::SortedSet;
18
18
use std:: sync:: Mutex ;
19
19
use supported_term:: SupportedTerm ;
20
20
21
-
22
-
23
21
mod atoms {
24
22
rustler_atoms ! {
25
23
// Common Atoms
@@ -54,7 +52,7 @@ pub enum Error {
54
52
#[ fail( display = "Not found" ) ]
55
53
NotFound ,
56
54
#[ fail( display = "Max bucket size exceeded" ) ]
57
- MaxBucketSizeExceeded
55
+ MaxBucketSizeExceeded ,
58
56
}
59
57
60
58
pub struct FoundData {
@@ -63,7 +61,6 @@ pub struct FoundData {
63
61
idx : usize ,
64
62
}
65
63
66
-
67
64
rustler_export_nifs ! {
68
65
"Elixir.Discord.SortedSet.NifBridge" ,
69
66
[
@@ -93,10 +90,7 @@ fn empty<'a>(env: Env<'a>, args: &[Term<'a>]) -> NifResult<Term<'a>> {
93
90
94
91
let initial_set_capacity: usize = ( initial_item_capacity / max_bucket_size) + 1 ;
95
92
96
- let configuration = Configuration :: new (
97
- max_bucket_size,
98
- initial_set_capacity,
99
- ) ;
93
+ let configuration = Configuration :: new ( max_bucket_size, initial_set_capacity) ;
100
94
101
95
let resource = ResourceArc :: new ( SortedSetResource ( Mutex :: new ( SortedSet :: empty (
102
96
configuration,
@@ -111,10 +105,7 @@ fn new<'a>(env: Env<'a>, args: &[Term<'a>]) -> NifResult<Term<'a>> {
111
105
112
106
let initial_set_capacity: usize = ( initial_item_capacity / max_bucket_size) + 1 ;
113
107
114
- let configuration = Configuration :: new (
115
- max_bucket_size,
116
- initial_set_capacity,
117
- ) ;
108
+ let configuration = Configuration :: new ( max_bucket_size, initial_set_capacity) ;
118
109
119
110
let resource = ResourceArc :: new ( SortedSetResource ( Mutex :: new ( SortedSet :: new ( configuration) ) ) ) ;
120
111
@@ -139,12 +130,10 @@ fn append_bucket<'a>(env: Env<'a>, args: &[Term<'a>]) -> NifResult<Term<'a>> {
139
130
140
131
match set. append_bucket ( items) {
141
132
Ok ( _) => Ok ( atoms:: ok ( ) . encode ( env) ) ,
142
- Err ( e) => {
143
- match e {
144
- Error :: MaxBucketSizeExceeded => Ok ( ( atoms:: error ( ) , atoms:: max_bucket_size_exceeded ( ) ) . encode ( env) ) ,
145
- _ => unreachable ! ( ) ,
146
- }
133
+ Err ( Error :: MaxBucketSizeExceeded ) => {
134
+ Ok ( ( atoms:: error ( ) , atoms:: max_bucket_size_exceeded ( ) ) . encode ( env) )
147
135
}
136
+ _ => unreachable ! ( ) ,
148
137
}
149
138
}
150
139
@@ -166,12 +155,8 @@ fn add<'a>(env: Env<'a>, args: &[Term<'a>]) -> NifResult<Term<'a>> {
166
155
167
156
match set. add ( item) {
168
157
Ok ( idx) => Ok ( ( atoms:: ok ( ) , atoms:: added ( ) , idx) . encode ( env) ) ,
169
- Err ( e) => {
170
- match e {
171
- Error :: Duplicate ( idx) => Ok ( ( atoms:: ok ( ) , atoms:: duplicate ( ) , idx) . encode ( env) ) ,
172
- _ => unreachable ! ( ) ,
173
- }
174
- }
158
+ Err ( Error :: Duplicate ( idx) ) => Ok ( ( atoms:: ok ( ) , atoms:: duplicate ( ) , idx) . encode ( env) ) ,
159
+ _ => unreachable ! ( ) ,
175
160
}
176
161
}
177
162
@@ -193,12 +178,8 @@ fn remove<'a>(env: Env<'a>, args: &[Term<'a>]) -> NifResult<Term<'a>> {
193
178
194
179
match set. remove ( & item) {
195
180
Ok ( idx) => Ok ( ( atoms:: ok ( ) , atoms:: removed ( ) , idx) . encode ( env) ) ,
196
- Err ( e) => {
197
- match e {
198
- Error :: NotFound => Ok ( ( atoms:: error ( ) , atoms:: not_found ( ) ) . encode ( env) ) ,
199
- _ => unreachable ! ( ) ,
200
- }
201
- }
181
+ Err ( Error :: NotFound ) => Ok ( ( atoms:: error ( ) , atoms:: not_found ( ) ) . encode ( env) ) ,
182
+ _ => unreachable ! ( ) ,
202
183
}
203
184
}
204
185
@@ -282,16 +263,9 @@ fn find_index<'a>(env: Env<'a>, args: &[Term<'a>]) -> NifResult<Term<'a>> {
282
263
} ;
283
264
284
265
match set. find_index ( & item) {
285
- Ok ( FoundData {
286
- idx,
287
- ..
288
- } ) => Ok ( ( atoms:: ok ( ) , idx) . encode ( env) ) ,
289
- Err ( e) => {
290
- match e {
291
- Error :: NotFound => Ok ( ( atoms:: error ( ) , atoms:: not_found ( ) ) . encode ( env) ) ,
292
- _ => unreachable ! ( ) ,
293
- }
294
- }
266
+ Ok ( FoundData { idx, .. } ) => Ok ( ( atoms:: ok ( ) , idx) . encode ( env) ) ,
267
+ Err ( Error :: NotFound ) => Ok ( ( atoms:: error ( ) , atoms:: not_found ( ) ) . encode ( env) ) ,
268
+ _ => unreachable ! ( ) ,
295
269
}
296
270
}
297
271
0 commit comments