@@ -98,7 +98,7 @@ enum BitvVariant { Big(BigBitv), Small(SmallBitv) }
98
98
/// # Example
99
99
///
100
100
/// ```rust
101
- /// use collections::bitv:: Bitv;
101
+ /// use collections::Bitv;
102
102
///
103
103
/// let mut bv = Bitv::with_capacity(10, false);
104
104
///
@@ -249,9 +249,9 @@ impl Bitv {
249
249
/// # Example
250
250
///
251
251
/// ```
252
- /// use std::collections::Bitv ;
252
+ /// use std::collections::bitv ;
253
253
///
254
- /// let bv: Bitv = [false, true].iter().map(|n| *n).collect( );
254
+ /// let bv = bitv::from_bytes([0b01100000] );
255
255
/// assert_eq!(bv.get(0), false);
256
256
/// assert_eq!(bv.get(1), true);
257
257
///
@@ -297,11 +297,15 @@ impl Bitv {
297
297
/// # Example
298
298
///
299
299
/// ```
300
- /// use std::collections::Bitv ;
300
+ /// use std::collections::bitv ;
301
301
///
302
- /// let mut bv: Bitv = [false, true, false].iter().map(|n| *n).collect();
302
+ /// let before = 0b01100000;
303
+ /// let after = 0b11111111;
304
+ ///
305
+ /// let mut bv = bitv::from_bytes([before]);
303
306
/// bv.set_all();
304
- /// assert!(bv.eq_vec([true, true, true]));
307
+ /// assert_eq!(bv, bitv::from_bytes([after]));
308
+ /// ```
305
309
#[ inline]
306
310
pub fn set_all ( & mut self ) {
307
311
for w in self . storage . mut_iter ( ) { * w = !0 u; }
@@ -312,11 +316,15 @@ impl Bitv {
312
316
/// # Example
313
317
///
314
318
/// ```
315
- /// use std::collections::Bitv;
319
+ /// use std::collections::bitv;
320
+ ///
321
+ /// let before = 0b01100000;
322
+ /// let after = 0b10011111;
316
323
///
317
- /// let mut bv: Bitv = [false, true, false].iter().map(|n| *n).collect( );
324
+ /// let mut bv = bitv::from_bytes([before] );
318
325
/// bv.negate();
319
- /// assert!(bv.eq_vec([true, false, true]));
326
+ /// assert_eq!(bv, bitv::from_bytes([after]));
327
+ /// ```
320
328
#[ inline]
321
329
pub fn negate ( & mut self ) {
322
330
for w in self . storage . mut_iter ( ) { * w = !* w; }
@@ -334,14 +342,17 @@ impl Bitv {
334
342
/// # Example
335
343
///
336
344
/// ```
337
- /// use std::collections::Bitv;
345
+ /// use std::collections::bitv;
346
+ ///
347
+ /// let a = 0b01100100;
348
+ /// let b = 0b01011010;
349
+ /// let res = 0b01111110;
338
350
///
339
- /// let mut bv1: Bitv = [false, true, true, false].iter().map(|n| *n).collect();
340
- /// let bv2: Bitv = [false, true, false, true].iter().map(|n| *n).collect();
341
- /// let res: Bitv = [false, true, true, true].iter().map(|n| *n).collect();
351
+ /// let mut a = bitv::from_bytes([a]);
352
+ /// let b = bitv::from_bytes([b]);
342
353
///
343
- /// assert!(bv1 .union(&bv2 ));
344
- /// assert_eq!(bv1, res);
354
+ /// assert!(a .union(&b ));
355
+ /// assert_eq!(a, bitv::from_bytes([ res]) );
345
356
/// ```
346
357
#[ inline]
347
358
pub fn union ( & mut self , other : & Bitv ) -> bool {
@@ -360,14 +371,17 @@ impl Bitv {
360
371
/// # Example
361
372
///
362
373
/// ```
363
- /// use std::collections::Bitv ;
374
+ /// use std::collections::bitv ;
364
375
///
365
- /// let mut bv1: Bitv = [false, true, true, false].iter().map(|n| *n).collect() ;
366
- /// let bv2: Bitv = [false, true, false, true].iter().map(|n| *n).collect() ;
367
- /// let res: Bitv = [false, true, false, false].iter().map(|n| *n).collect() ;
376
+ /// let a = 0b01100100 ;
377
+ /// let b = 0b01011010 ;
378
+ /// let res = 0b01000000 ;
368
379
///
369
- /// assert!(bv1.intersect(&bv2));
370
- /// assert_eq!(bv1, res);
380
+ /// let mut a = bitv::from_bytes([a]);
381
+ /// let b = bitv::from_bytes([b]);
382
+ ///
383
+ /// assert!(a.intersect(&b));
384
+ /// assert_eq!(a, bitv::from_bytes([res]));
371
385
/// ```
372
386
#[ inline]
373
387
pub fn intersect ( & mut self , other : & Bitv ) -> bool {
@@ -387,14 +401,24 @@ impl Bitv {
387
401
/// # Example
388
402
///
389
403
/// ```
390
- /// use std::collections::Bitv;
404
+ /// use std::collections::bitv;
405
+ ///
406
+ /// let a = 0b01100100;
407
+ /// let b = 0b01011010;
408
+ /// let a_b = 0b00100100; // a - b
409
+ /// let b_a = 0b00011010; // b - a
410
+ ///
411
+ /// let mut bva = bitv::from_bytes([a]);
412
+ /// let bvb = bitv::from_bytes([b]);
391
413
///
392
- /// let mut bv1: Bitv = [false, true, true, false].iter().map(|n| *n).collect();
393
- /// let bv2: Bitv = [false, true, false, true].iter().map(|n| *n).collect();
394
- /// let res: Bitv = [false, false, true, false].iter().map(|n| *n).collect();
414
+ /// assert!(bva.difference(&bvb));
415
+ /// assert_eq!(bva, bitv::from_bytes([a_b]));
395
416
///
396
- /// assert!(bv1.difference(&bv2));
397
- /// assert_eq!(bv1, res);
417
+ /// let bva = bitv::from_bytes([a]);
418
+ /// let mut bvb = bitv::from_bytes([b]);
419
+ ///
420
+ /// assert!(bvb.difference(&bva));
421
+ /// assert_eq!(bvb, bitv::from_bytes([b_a]));
398
422
/// ```
399
423
#[ inline]
400
424
pub fn difference ( & mut self , other : & Bitv ) -> bool {
@@ -406,7 +430,7 @@ impl Bitv {
406
430
/// # Example
407
431
///
408
432
/// ```
409
- /// use std::collections::bitv:: Bitv;
433
+ /// use std::collections::Bitv;
410
434
///
411
435
/// let mut bv = Bitv::with_capacity(5, true);
412
436
/// assert_eq!(bv.all(), true);
@@ -429,16 +453,10 @@ impl Bitv {
429
453
/// # Example
430
454
///
431
455
/// ```
432
- /// use std::collections::bitv::Bitv;
433
- ///
434
- /// let mut bv = Bitv::with_capacity(10, false);
435
- /// bv.set(1, true);
436
- /// bv.set(2, true);
437
- /// bv.set(3, true);
438
- /// bv.set(5, true);
439
- /// bv.set(8, true);
456
+ /// use std::collections::bitv;
440
457
///
441
- /// assert_eq!(bv.iter().filter(|x| *x).count(), 5);
458
+ /// let bv = bitv::from_bytes([0b01110100, 0b10010010]);
459
+ /// assert_eq!(bv.iter().filter(|x| *x).count(), 7);
442
460
/// ```
443
461
#[ inline]
444
462
pub fn iter < ' a > ( & ' a self ) -> Bits < ' a > {
@@ -450,7 +468,7 @@ impl Bitv {
450
468
/// # Example
451
469
///
452
470
/// ```
453
- /// use std::collections::bitv:: Bitv;
471
+ /// use std::collections::Bitv;
454
472
///
455
473
/// let mut bv = Bitv::with_capacity(10, false);
456
474
/// assert_eq!(bv.none(), true);
@@ -467,7 +485,7 @@ impl Bitv {
467
485
/// # Example
468
486
///
469
487
/// ```
470
- /// use std::collections::bitv:: Bitv;
488
+ /// use std::collections::Bitv;
471
489
///
472
490
/// let mut bv = Bitv::with_capacity(10, false);
473
491
/// assert_eq!(bv.any(), false);
@@ -488,7 +506,7 @@ impl Bitv {
488
506
/// # Example
489
507
///
490
508
/// ```
491
- /// use std::collections::bitv:: Bitv;
509
+ /// use std::collections::Bitv;
492
510
///
493
511
/// let mut bv = Bitv::with_capacity(3, true);
494
512
/// bv.set(1, false);
@@ -530,10 +548,11 @@ impl Bitv {
530
548
/// # Example
531
549
///
532
550
/// ```
533
- /// use std::collections::bitv::Bitv ;
551
+ /// use std::collections::bitv;
534
552
///
535
- /// let bv: Bitv = [true, false, true].iter().map(|n| *n).collect();
536
- /// assert_eq!(bv.to_bools(), vec!(true, false, true));
553
+ /// let bv = bitv::from_bytes([0b10100000]);
554
+ /// assert_eq!(bv.to_bools(), vec!(true, false, true, false,
555
+ /// false, false, false, false));
537
556
/// ```
538
557
pub fn to_bools ( & self ) -> Vec < bool > {
539
558
Vec :: from_fn ( self . nbits , |i| self . get ( i) )
@@ -548,11 +567,12 @@ impl Bitv {
548
567
/// # Example
549
568
///
550
569
/// ```
551
- /// use std::collections::Bitv ;
570
+ /// use std::collections::bitv ;
552
571
///
553
- /// let bv: Bitv = [false, true, true].iter().map(|n| *n).collect( );
572
+ /// let bv = bitv::from_bytes([0b10100000] );
554
573
///
555
- /// assert!(bv.eq_vec([false, true, true]));
574
+ /// assert!(bv.eq_vec([true, false, true, false,
575
+ /// false, false, false, false]));
556
576
/// ```
557
577
pub fn eq_vec ( & self , v : & [ bool ] ) -> bool {
558
578
assert_eq ! ( self . nbits, v. len( ) ) ;
@@ -572,9 +592,9 @@ impl Bitv {
572
592
/// # Example
573
593
///
574
594
/// ```
575
- /// use std::collections::bitv::Bitv ;
595
+ /// use std::collections::bitv;
576
596
///
577
- /// let mut bv: Bitv = [false, true, true, false].iter().map(|n| *n).collect( );
597
+ /// let mut bv = bitv::from_bytes([0b01001011] );
578
598
/// bv.truncate(2);
579
599
/// assert!(bv.eq_vec([false, true]));
580
600
/// ```
@@ -595,7 +615,7 @@ impl Bitv {
595
615
/// # Example
596
616
///
597
617
/// ```
598
- /// use std::collections::bitv:: Bitv;
618
+ /// use std::collections::Bitv;
599
619
///
600
620
/// let mut bv = Bitv::with_capacity(3, false);
601
621
/// bv.reserve(10);
@@ -616,7 +636,7 @@ impl Bitv {
616
636
/// # Example
617
637
///
618
638
/// ```
619
- /// use std::collections::bitv:: Bitv;
639
+ /// use std::collections::Bitv;
620
640
///
621
641
/// let mut bv = Bitv::new();
622
642
/// bv.reserve(10);
@@ -632,11 +652,12 @@ impl Bitv {
632
652
/// # Example
633
653
///
634
654
/// ```
635
- /// use std::collections::bitv::Bitv ;
655
+ /// use std::collections::bitv;
636
656
///
637
- /// let mut bv: Bitv = [false, true, true, false].iter().map(|n| *n).collect( );
657
+ /// let mut bv = bitv::from_bytes([0b01001011] );
638
658
/// bv.grow(2, true);
639
- /// assert!(bv.eq_vec([false, true, true, false, true, true]));
659
+ /// assert_eq!(bv.len(), 10);
660
+ /// assert_eq!(bv.to_bytes(), vec!(0b01001011, 0b11000000));
640
661
/// ```
641
662
pub fn grow ( & mut self , n : uint , value : bool ) {
642
663
let new_nbits = self . nbits + n;
@@ -676,11 +697,13 @@ impl Bitv {
676
697
/// # Example
677
698
///
678
699
/// ```
679
- /// use std::collections::bitv::Bitv ;
700
+ /// use std::collections::bitv;
680
701
///
681
- /// let mut bv: Bitv = [false, true, true, false].iter().map(|n| *n).collect();
702
+ /// let mut bv = bitv::from_bytes([0b01001001]);
703
+ /// assert_eq!(bv.pop(), true);
682
704
/// assert_eq!(bv.pop(), false);
683
- /// assert!(bv.eq_vec([false, true, true]));
705
+ /// assert_eq!(bv.len(), 6);
706
+ /// assert_eq!(bv.to_bytes(), vec!(0b01001000));
684
707
/// ```
685
708
pub fn pop ( & mut self ) -> bool {
686
709
let ret = self . get ( self . nbits - 1 ) ;
@@ -697,12 +720,12 @@ impl Bitv {
697
720
/// # Example
698
721
///
699
722
/// ```
700
- /// use std::collections::bitv:: Bitv;
723
+ /// use std::collections::Bitv;
701
724
///
702
- /// let mut bv: Bitv = [false, true].iter().map(|n| *n).collect ();
725
+ /// let mut bv = Bitv::new ();
703
726
/// bv.push(true);
704
727
/// bv.push(false);
705
- /// assert!(bv.eq_vec([false, true, true, false]));
728
+ /// assert!(bv.eq_vec([true, false]));
706
729
/// ```
707
730
pub fn push ( & mut self , elem : bool ) {
708
731
let insert_pos = self . nbits ;
@@ -974,9 +997,9 @@ impl BitvSet {
974
997
/// # Example
975
998
///
976
999
/// ```
977
- /// use std::collections::{Bitv , BitvSet};
1000
+ /// use std::collections::{bitv , BitvSet};
978
1001
///
979
- /// let bv: Bitv = [false, true, true, false].iter().map(|n| *n).collect( );
1002
+ /// let bv = bitv::from_bytes([0b01100000] );
980
1003
/// let s = BitvSet::from_bitv(bv);
981
1004
///
982
1005
/// // Print 1, 2 in arbitrary order
@@ -1279,11 +1302,15 @@ impl BitvSet {
1279
1302
/// use std::collections::BitvSet;
1280
1303
/// use std::collections::bitv;
1281
1304
///
1282
- /// let mut a = BitvSet::from_bitv(bitv::from_bytes([0b01101000]));
1283
- /// let b = BitvSet::from_bitv(bitv::from_bytes([0b10100000]));
1305
+ /// let a = 0b01101000;
1306
+ /// let b = 0b10100000;
1307
+ /// let res = 0b11101000;
1308
+ ///
1309
+ /// let mut a = BitvSet::from_bitv(bitv::from_bytes([a]));
1310
+ /// let b = BitvSet::from_bitv(bitv::from_bytes([b]));
1284
1311
///
1285
1312
/// a.union_with(&b);
1286
- /// assert_eq!(a.unwrap(), bitv::from_bytes([0b11101000 ]));
1313
+ /// assert_eq!(a.unwrap(), bitv::from_bytes([res ]));
1287
1314
/// ```
1288
1315
#[ inline]
1289
1316
pub fn union_with ( & mut self , other : & BitvSet ) {
@@ -1298,11 +1325,15 @@ impl BitvSet {
1298
1325
/// use std::collections::BitvSet;
1299
1326
/// use std::collections::bitv;
1300
1327
///
1301
- /// let mut a = BitvSet::from_bitv(bitv::from_bytes([0b01101000]));
1302
- /// let b = BitvSet::from_bitv(bitv::from_bytes([0b10100000]));
1328
+ /// let a = 0b01101000;
1329
+ /// let b = 0b10100000;
1330
+ /// let res = 0b00100000;
1331
+ ///
1332
+ /// let mut a = BitvSet::from_bitv(bitv::from_bytes([a]));
1333
+ /// let b = BitvSet::from_bitv(bitv::from_bytes([b]));
1303
1334
///
1304
1335
/// a.intersect_with(&b);
1305
- /// assert_eq!(a.unwrap(), bitv::from_bytes([0b00100000 ]));
1336
+ /// assert_eq!(a.unwrap(), bitv::from_bytes([res ]));
1306
1337
/// ```
1307
1338
#[ inline]
1308
1339
pub fn intersect_with ( & mut self , other : & BitvSet ) {
@@ -1317,11 +1348,22 @@ impl BitvSet {
1317
1348
/// use std::collections::BitvSet;
1318
1349
/// use std::collections::bitv;
1319
1350
///
1320
- /// let mut a = BitvSet::from_bitv(bitv::from_bytes([0b01101000]));
1321
- /// let b = BitvSet::from_bitv(bitv::from_bytes([0b10100000]));
1351
+ /// let a = 0b01101000;
1352
+ /// let b = 0b10100000;
1353
+ /// let a_b = 0b01001000; // a - b
1354
+ /// let b_a = 0b10000000; // b - a
1355
+ ///
1356
+ /// let mut bva = BitvSet::from_bitv(bitv::from_bytes([a]));
1357
+ /// let bvb = BitvSet::from_bitv(bitv::from_bytes([b]));
1358
+ ///
1359
+ /// bva.difference_with(&bvb);
1360
+ /// assert_eq!(bva.unwrap(), bitv::from_bytes([a_b]));
1322
1361
///
1323
- /// a.difference_with(&b);
1324
- /// assert_eq!(a.unwrap(), bitv::from_bytes([0b01001000]));
1362
+ /// let bva = BitvSet::from_bitv(bitv::from_bytes([a]));
1363
+ /// let mut bvb = BitvSet::from_bitv(bitv::from_bytes([b]));
1364
+ ///
1365
+ /// bvb.difference_with(&bva);
1366
+ /// assert_eq!(bvb.unwrap(), bitv::from_bytes([b_a]));
1325
1367
/// ```
1326
1368
#[ inline]
1327
1369
pub fn difference_with ( & mut self , other : & BitvSet ) {
@@ -1336,11 +1378,15 @@ impl BitvSet {
1336
1378
/// use std::collections::BitvSet;
1337
1379
/// use std::collections::bitv;
1338
1380
///
1339
- /// let mut a = BitvSet::from_bitv(bitv::from_bytes([0b01101000]));
1340
- /// let b = BitvSet::from_bitv(bitv::from_bytes([0b10100000]));
1381
+ /// let a = 0b01101000;
1382
+ /// let b = 0b10100000;
1383
+ /// let res = 0b11001000;
1384
+ ///
1385
+ /// let mut a = BitvSet::from_bitv(bitv::from_bytes([a]));
1386
+ /// let b = BitvSet::from_bitv(bitv::from_bytes([b]));
1341
1387
///
1342
1388
/// a.symmetric_difference_with(&b);
1343
- /// assert_eq!(a.unwrap(), bitv::from_bytes([0b11001000 ]));
1389
+ /// assert_eq!(a.unwrap(), bitv::from_bytes([res ]));
1344
1390
/// ```
1345
1391
#[ inline]
1346
1392
pub fn symmetric_difference_with ( & mut self , other : & BitvSet ) {
0 commit comments