# Struct fixed_bitmaps::Bitmap64[−][src]

``pub struct Bitmap64(_);``
Expand description

A bitmap of length 64.

## Examples

``````// Creates an empty bitmap
use fixed_bitmaps::Bitmap64;

let mut bitmap = Bitmap64::default();

// Bitmaps implement Display so you can view what the map looks like
println!("Default bitmap: {}", bitmap);

// Bitmaps also convert to their respective unsigned int versions and back again easily
// Will show 0 as the value of the bitmap
println!("Value of bitmap: {}", bitmap.to_u64());

// Let's do the same as above, but actually setting the values in the bitmap to something
bitmap |= Bitmap64::from(101);

println!("Bitmap after OR-ing with 101: {}", bitmap);

// Set the 4th index (the 5th bit) to true. Can simply unwrap the result to ignore the warning,
//as we know for certain that 4 < 64
bitmap.set(4, true).unwrap();

// Will show that 117 (101 + 2^4) is the value of the bitmap
println!("Bitmap value: {}", bitmap.to_u64());

// Or you could use the deref operator for an even easier conversion
println!("Bitmap value: {}", *bitmap);``````

## Implementations

Creates a new bitmap with all bits set to the given value.

###### Example
``````use fixed_bitmaps::Bitmap64;

let a = Bitmap64::new(true);
assert_eq!(*a, u64::MAX);

let b = Bitmap64::new(false);
assert_eq!(*b, 0);``````

Create a new bitmap that has its bits set from `begin` (inclusive) to `end` (exclusive). If begin is greater than the map length or end is 0, will return a bitmap with all bits set to the opposite of value.

###### Example
``````use fixed_bitmaps::Bitmap64;

let a = Bitmap64::create_bit_mask(3, 7, true);
assert_eq!(*a, 0b1111000);

let b = Bitmap64::create_bit_mask(3, 6, false); // Results in 1..1000111
assert_eq!(b, Bitmap64::new(true) ^ 0b111000);``````

Creates a new, empty `Bitmap64`, and sets the desired index before returning.

``````use fixed_bitmaps::Bitmap64;

let a = Bitmap64::from_set(5).unwrap();

// The above is equivalent to:

let mut b = Bitmap64::from(0);
b.set(5, true);

assert_eq!(a, b);``````

Sets the desired index, to the value provided. Note that indexing starts at 0.

###### Returns

Returns a `Result` based on the outcome. If an `Err<String>` was returned, it was because an out-of-bounds index was attempted to be set. In that case the bitmap’s state remains unchanged.

###### Example
``````use fixed_bitmaps::Bitmap64;

let mut bitmap = Bitmap64::default();
assert_eq!(*bitmap, 0);

bitmap.set(4, true);
assert_eq!(*bitmap, 16);``````

Set bits from begin (inclusive) to end (exclusive) to the given value.

###### Example
``````use fixed_bitmaps::Bitmap64;

let mut bitmap = Bitmap64::default();
assert_eq!(*bitmap, 0);

bitmap.set_range(2, 7, true);
assert_eq!(*bitmap, 0b1111100);

bitmap.set_range(3, 5, false);
assert_eq!(*bitmap, 0b1100100);``````

Gets the bit at the given index. Note that indexing starts at 0.

###### Returns

Returns a `Result` based on the outcome.

If `Ok<bool>` is returned, then the contained value in ok is the state of the given bit

If an `Err<String>` was returned, it was because you tried to get an out-of-bounds index.

###### Example
``````use fixed_bitmaps::Bitmap64;

let bitmap = Bitmap64::from(0b1010);
assert_eq!(bitmap.get(2).unwrap(), false);
assert_eq!(bitmap.get(3).unwrap(), true);``````

## Trait Implementations

The resulting type after applying the `+` operator.

Performs the `+` operation. Read more

The resulting type after applying the `+` operator.

Performs the `+` operation. Read more

Performs the `+=` operation. Read more

Performs the `+=` operation. Read more

The resulting type after applying the `&` operator.

Performs the `&` operation. Read more

The resulting type after applying the `&` operator.

Performs the `&` operation. Read more

Performs the `&=` operation. Read more

Performs the `&=` operation. Read more

The resulting type after applying the `|` operator.

Performs the `|` operation. Read more

The resulting type after applying the `|` operator.

Performs the `|` operation. Read more

Performs the `|=` operation. Read more

Performs the `|=` operation. Read more

The resulting type after applying the `^` operator.

Performs the `^` operation. Read more

The resulting type after applying the `^` operator.

Performs the `^` operation. Read more

Performs the `^=` operation. Read more

Performs the `^=` operation. Read more

Returns a copy of the value. Read more

Performs copy-assignment from `source`. Read more

Formats the value using the given formatter. Read more

Returns the “default value” for a type. Read more

The resulting type after dereferencing.

Dereferences the value.

Deserialize this value from the given Serde deserializer. Read more

Formats the value using the given formatter. Read more

The resulting type after applying the `/` operator.

Performs the `/` operation. Read more

The resulting type after applying the `/` operator.

Performs the `/` operation. Read more

Performs the `/=` operation. Read more

Performs the `/=` operation. Read more

Performs the conversion.

Feeds this value into the given `Hasher`. Read more

Feeds a slice of this type into the given `Hasher`. Read more

The resulting type after applying the `*` operator.

Performs the `*` operation. Read more

The resulting type after applying the `*` operator.

Performs the `*` operation. Read more

Performs the `*=` operation. Read more

Performs the `*=` operation. Read more

The resulting type after applying the `!` operator.

Performs the unary `!` operation. Read more

This method returns an `Ordering` between `self` and `other`. Read more

Compares and returns the maximum of two values. Read more

Compares and returns the minimum of two values. Read more

Restrict a value to a certain interval. Read more

This method tests for `self` and `other` values to be equal, and is used by `==`. Read more

This method tests for `!=`.

This method returns an ordering between `self` and `other` values if one exists. Read more

This method tests less than (for `self` and `other`) and is used by the `<` operator. Read more

This method tests less than or equal to (for `self` and `other`) and is used by the `<=` operator. Read more

This method tests greater than (for `self` and `other`) and is used by the `>` operator. Read more

This method tests greater than or equal to (for `self` and `other`) and is used by the `>=` operator. Read more

Serialize this value into the given Serde serializer. Read more

The resulting type after applying the `<<` operator.

Performs the `<<` operation. Read more

Performs the `<<=` operation. Read more

The resulting type after applying the `>>` operator.

Performs the `>>` operation. Read more

Performs the `>>=` operation. Read more

The resulting type after applying the `-` operator.

Performs the `-` operation. Read more

The resulting type after applying the `-` operator.

Performs the `-` operation. Read more

Performs the `-=` operation. Read more

Performs the `-=` operation. Read more

## Blanket Implementations

Gets the `TypeId` of `self`. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

Performs the conversion.

The resulting type after obtaining ownership.

Creates owned data from borrowed data, usually by cloning. Read more

🔬 This is a nightly-only experimental API. (`toowned_clone_into`)

Converts the given value to a `String`. Read more