@@ -16,14 +16,14 @@ trait SendMap<K:Eq Hash, V: Copy> {
16
16
fn clear ( & mut self ) ;
17
17
pure fn len ( & const self ) -> uint ;
18
18
pure fn is_empty ( & const self ) -> bool ;
19
- fn contains_key ( & const self , k : & K ) -> bool ;
20
- fn each_ref ( & self , blk : fn ( k : & K , v : & V ) -> bool ) ;
21
- fn each_key_ref ( & self , blk : fn ( k : & K ) -> bool ) ;
22
- fn each_value_ref ( & self , blk : fn ( v : & V ) -> bool ) ;
23
- fn find ( & const self , k : & K ) -> Option < V > ;
24
- fn get ( & const self , k : & K ) -> V ;
25
- fn find_ref ( & self , k : & K ) -> Option < & self /V > ;
26
- fn get_ref ( & self , k : & K ) -> & self /V ;
19
+ pure fn contains_key ( & const self , k : & K ) -> bool ;
20
+ pure fn each_ref ( & self , blk : fn ( k : & K , v : & V ) -> bool ) ;
21
+ pure fn each_key_ref ( & self , blk : fn ( k : & K ) -> bool ) ;
22
+ pure fn each_value_ref ( & self , blk : fn ( v : & V ) -> bool ) ;
23
+ pure fn find ( & const self , k : & K ) -> Option < V > ;
24
+ pure fn get ( & const self , k : & K ) -> V ;
25
+ pure fn find_ref ( & self , k : & K ) -> Option < & self /V > ;
26
+ pure fn get_ref ( & self , k : & K ) -> & self /V ;
27
27
}
28
28
29
29
/// Open addressing with linear probing.
@@ -267,15 +267,15 @@ mod linear {
267
267
self . len ( ) == 0
268
268
}
269
269
270
- fn contains_key ( & const self ,
270
+ pure fn contains_key ( & const self ,
271
271
k : & K ) -> bool {
272
272
match self . bucket_for_key ( self . buckets , k) {
273
273
FoundEntry ( _) => { true }
274
274
TableFull | FoundHole ( _) => { false }
275
275
}
276
276
}
277
277
278
- fn find_ref ( & self , k : & K ) -> Option < & self /V > {
278
+ pure fn find_ref ( & self , k : & K ) -> Option < & self /V > {
279
279
match self . bucket_for_key ( self . buckets , k) {
280
280
FoundEntry ( idx) => {
281
281
match self . buckets [ idx] {
@@ -304,14 +304,14 @@ mod linear {
304
304
}
305
305
}
306
306
307
- fn get_ref ( & self , k : & K ) -> & self /V {
307
+ pure fn get_ref ( & self , k : & K ) -> & self /V {
308
308
match self . find_ref ( k) {
309
309
Some ( v) => v,
310
310
None => fail fmt ! ( "No entry found for key: %?" , k) ,
311
311
}
312
312
}
313
313
314
- fn each_ref ( & self , blk : fn ( k : & K , v : & V ) -> bool ) {
314
+ pure fn each_ref ( & self , blk : fn ( k : & K , v : & V ) -> bool ) {
315
315
for vec:: each( self . buckets) |slot| {
316
316
let mut broke = false ;
317
317
do slot. iter |bucket| {
@@ -323,17 +323,17 @@ mod linear {
323
323
}
324
324
}
325
325
326
- fn each_key_ref ( & self , blk : fn ( k : & K ) -> bool ) {
326
+ pure fn each_key_ref ( & self , blk : fn ( k : & K ) -> bool ) {
327
327
self . each_ref ( |k, _v| blk ( k) )
328
328
}
329
329
330
- fn each_value_ref ( & self , blk : fn ( v : & V ) -> bool ) {
330
+ pure fn each_value_ref ( & self , blk : fn ( v : & V ) -> bool ) {
331
331
self . each_ref ( |_k, v| blk ( v) )
332
332
}
333
333
}
334
334
335
335
impl < K : Hash IterBytes Eq , V : Copy > LinearMap < K , V > {
336
- fn find ( & const self , k : & K ) -> Option < V > {
336
+ pure fn find ( & const self , k : & K ) -> Option < V > {
337
337
match self . bucket_for_key ( self . buckets , k) {
338
338
FoundEntry ( idx) => {
339
339
// FIXME (#3148): Once we rewrite found_entry, this
@@ -349,7 +349,7 @@ mod linear {
349
349
}
350
350
}
351
351
352
- fn get ( & const self , k : & K ) -> V {
352
+ pure fn get ( & const self , k : & K ) -> V {
353
353
let value = self . find ( k) ;
354
354
if value. is_none ( ) {
355
355
fail fmt ! ( "No entry found for key: %?" , k) ;
@@ -360,17 +360,17 @@ mod linear {
360
360
}
361
361
362
362
impl < K : Hash IterBytes Eq Copy , V : Copy > LinearMap < K , V > {
363
- fn each ( & self , blk : fn ( +K , +V ) -> bool ) {
363
+ pure fn each ( & self , blk : fn ( +K , +V ) -> bool ) {
364
364
self . each_ref ( |k, v| blk ( copy * k, copy * v) ) ;
365
365
}
366
366
}
367
367
impl < K : Hash IterBytes Eq Copy , V > LinearMap < K , V > {
368
- fn each_key ( & self , blk : fn ( +K ) -> bool ) {
368
+ pure fn each_key ( & self , blk : fn ( +K ) -> bool ) {
369
369
self . each_key_ref ( |k| blk ( copy * k) ) ;
370
370
}
371
371
}
372
372
impl < K : Hash IterBytes Eq , V : Copy > LinearMap < K , V > {
373
- fn each_value ( & self , blk : fn ( +V ) -> bool ) {
373
+ pure fn each_value ( & self , blk : fn ( +V ) -> bool ) {
374
374
self . each_value_ref ( |v| blk ( copy * v) ) ;
375
375
}
376
376
}
0 commit comments