New:Socket for Asana Is Now Available.Learn more
Sign In

bitvec

Package Overview
Dependencies
Maintainers
1
Versions
61
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

bitvec - cargo Package Compare versions

Comparing version
0.19.1
to
0.19.2
+1
-1
.cargo_vcs_info.json
{
"git": {
"sha1": "ab289dadce27076664b6039f4029404d856beb09"
"sha1": "129330cb9d12fbd44aabaa665b04d5378fe84d0e"
}
}

@@ -5,12 +5,12 @@ # This file is automatically @generated by Cargo.

name = "bitvec"
version = "0.19.1"
version = "0.19.2"
dependencies = [
"funty",
"radium",
"serde",
"serde_json",
"serde_test",
"static_assertions",
"tap",
"wyz",
"funty 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
"radium 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
"serde 1.0.116 (registry+https://github.com/rust-lang/crates.io-index)",
"serde_json 1.0.57 (registry+https://github.com/rust-lang/crates.io-index)",
"serde_test 1.0.116 (registry+https://github.com/rust-lang/crates.io-index)",
"static_assertions 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
"tap 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
"wyz 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
]

@@ -22,3 +22,2 @@

source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0ba62103ce691c2fd80fbae2213dfdda9ce60804973ac6b6e97de818ea7f52c8"

@@ -29,9 +28,7 @@ [[package]]

source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dc6f3ad7b9d11a0c00842ff8de1b60ee58661048eb8049ed33c73594f359d7e6"
[[package]]
name = "radium"
version = "0.4.0"
version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "53c9ec32b903ef247fbd5d56040d0e0e773ed6f9b5e116bd2ee27a3833d81938"

@@ -42,3 +39,2 @@ [[package]]

source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e"

@@ -49,3 +45,2 @@ [[package]]

source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "96fe57af81d28386a513cbc6858332abc6117cfdb5999647c6444b8f43a370a5"

@@ -56,7 +51,6 @@ [[package]]

source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "164eacbdb13512ec2745fb09d51fd5b22b0d65ed294a1dcf7285a360c80a675c"
dependencies = [
"itoa",
"ryu",
"serde",
"itoa 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
"ryu 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
"serde 1.0.116 (registry+https://github.com/rust-lang/crates.io-index)",
]

@@ -68,5 +62,4 @@

source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "923edec3f1ab4a2f489f384e117dc4f826fd977a9d189b28717cba8474dd5c6b"
dependencies = [
"serde",
"serde 1.0.116 (registry+https://github.com/rust-lang/crates.io-index)",
]

@@ -78,3 +71,2 @@

source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"

@@ -85,3 +77,2 @@ [[package]]

source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "36474e732d1affd3a6ed582781b3683df3d0563714c59c39591e8ff707cf078e"

@@ -92,2 +83,13 @@ [[package]]

source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "85e60b0d1b5f99db2556934e21937020776a5d31520bf169e851ac44e6420214"
[metadata]
"checksum funty 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0ba62103ce691c2fd80fbae2213dfdda9ce60804973ac6b6e97de818ea7f52c8"
"checksum itoa 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "dc6f3ad7b9d11a0c00842ff8de1b60ee58661048eb8049ed33c73594f359d7e6"
"checksum radium 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "5a333b5f6adeff5a89f2e95dc2ea1ecb5319abbb56212afea6a37f87435338a5"
"checksum ryu 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e"
"checksum serde 1.0.116 (registry+https://github.com/rust-lang/crates.io-index)" = "96fe57af81d28386a513cbc6858332abc6117cfdb5999647c6444b8f43a370a5"
"checksum serde_json 1.0.57 (registry+https://github.com/rust-lang/crates.io-index)" = "164eacbdb13512ec2745fb09d51fd5b22b0d65ed294a1dcf7285a360c80a675c"
"checksum serde_test 1.0.116 (registry+https://github.com/rust-lang/crates.io-index)" = "923edec3f1ab4a2f489f384e117dc4f826fd977a9d189b28717cba8474dd5c6b"
"checksum static_assertions 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
"checksum tap 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "36474e732d1affd3a6ed582781b3683df3d0563714c59c39591e8ff707cf078e"
"checksum wyz 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "85e60b0d1b5f99db2556934e21937020776a5d31520bf169e851ac44e6420214"

@@ -16,3 +16,3 @@ # THIS FILE IS AUTOMATICALLY GENERATED BY CARGO

name = "bitvec"
version = "0.19.1"
version = "0.19.2"
authors = ["myrrlyn <self@myrrlyn.dev>"]

@@ -35,3 +35,3 @@ include = ["Cargo.toml", "src/**/*.rs"]

[dependencies.radium]
version = "0.4"
version = "0.5"

@@ -38,0 +38,0 @@ [dependencies.serde]

@@ -39,4 +39,4 @@ /*! Memory access control.

**/
pub trait BitAccess<R>: Debug + Radium<R> + Sized
where R: BitRegister
pub trait BitAccess: Debug + Radium + Sized
where <Self as Radium>::Item: BitRegister
{

@@ -59,3 +59,3 @@ /// Sets one bit in a memory element to `0`.

#[inline]
fn clear_bit<O>(&self, index: BitIdx<R>)
fn clear_bit<O>(&self, index: BitIdx<<Self as Radium>::Item>)
where O: BitOrder {

@@ -87,3 +87,3 @@ self.fetch_and(!index.select::<O>().value(), Ordering::Relaxed);

#[inline]
fn clear_bits(&self, mask: BitMask<R>) {
fn clear_bits(&self, mask: BitMask<<Self as Radium>::Item>) {
self.fetch_and(!mask.value(), Ordering::Relaxed);

@@ -108,3 +108,3 @@ }

#[inline]
fn set_bit<O>(&self, index: BitIdx<R>)
fn set_bit<O>(&self, index: BitIdx<<Self as Radium>::Item>)
where O: BitOrder {

@@ -132,3 +132,3 @@ self.fetch_or(index.select::<O>().value(), Ordering::Relaxed);

#[inline]
fn set_bits(&self, mask: BitMask<R>) {
fn set_bits(&self, mask: BitMask<<Self as Radium>::Item>) {
self.fetch_or(mask.value(), Ordering::Relaxed);

@@ -153,3 +153,3 @@ }

#[inline]
fn invert_bit<O>(&self, index: BitIdx<R>)
fn invert_bit<O>(&self, index: BitIdx<<Self as Radium>::Item>)
where O: BitOrder {

@@ -177,3 +177,3 @@ self.fetch_xor(index.select::<O>().value(), Ordering::Relaxed);

#[inline]
fn invert_bits(&self, mask: BitMask<R>) {
fn invert_bits(&self, mask: BitMask<<Self as Radium>::Item>) {
self.fetch_xor(mask.value(), Ordering::Relaxed);

@@ -198,3 +198,3 @@ }

#[inline]
fn write_bit<O>(&self, index: BitIdx<R>, value: bool)
fn write_bit<O>(&self, index: BitIdx<<Self as Radium>::Item>, value: bool)
where O: BitOrder {

@@ -227,3 +227,3 @@ if value {

#[inline]
fn write_bits(&self, mask: BitMask<R>, value: bool) {
fn write_bits(&self, mask: BitMask<<Self as Radium>::Item>, value: bool) {
if value {

@@ -257,3 +257,5 @@ self.set_bits(mask);

#[inline]
fn get_writer<O>(value: bool) -> for<'a> fn(&'a Self, BitIdx<R>)
fn get_writer<O>(
value: bool,
) -> for<'a> fn(&'a Self, BitIdx<<Self as Radium>::Item>)
where O: BitOrder {

@@ -279,3 +281,5 @@ [Self::clear_bit::<O>, Self::set_bit::<O>][value as usize]

#[inline]
fn get_writers(value: bool) -> for<'a> fn(&'a Self, BitMask<R>) {
fn get_writers(
value: bool,
) -> for<'a> fn(&'a Self, BitMask<<Self as Radium>::Item>) {
[Self::clear_bits, Self::set_bits][value as usize]

@@ -305,3 +309,3 @@ }

#[inline]
unsafe fn store_value(&self, value: R) {
unsafe fn store_value(&self, value: <Self as Radium>::Item) {
self.store(value, Ordering::Relaxed)

@@ -311,6 +315,6 @@ }

impl<A, R> BitAccess<R> for A
impl<A> BitAccess for A
where
A: Debug + Radium<R>,
R: BitRegister,
A: Debug + Radium,
<Self as Radium>::Item: BitRegister,
{

@@ -377,22 +381,21 @@ }

assert_eq!(
<Cell<u8> as BitAccess::<u8>>::get_writer::<Msb0>(false)
as *const (),
<Cell<u8> as BitAccess::<u8>>::clear_bit::<Msb0> as *const ()
<Cell<u8> as BitAccess>::get_writer::<Msb0>(false) as *const (),
<Cell<u8> as BitAccess>::clear_bit::<Msb0> as *const ()
);
assert_eq!(
<Cell<u8> as BitAccess::<u8>>::get_writer::<Msb0>(true) as *const (),
<Cell<u8> as BitAccess::<u8>>::set_bit::<Msb0> as *const ()
<Cell<u8> as BitAccess>::get_writer::<Msb0>(true) as *const (),
<Cell<u8> as BitAccess>::set_bit::<Msb0> as *const ()
);
assert_eq!(
<Cell<u8> as BitAccess::<u8>>::get_writers(false) as *const (),
<Cell<u8> as BitAccess::<u8>>::clear_bits as *const ()
<Cell<u8> as BitAccess>::get_writers(false) as *const (),
<Cell<u8> as BitAccess>::clear_bits as *const ()
);
assert_eq!(
<Cell<u8> as BitAccess::<u8>>::get_writers(true) as *const (),
<Cell<u8> as BitAccess::<u8>>::set_bits as *const ()
<Cell<u8> as BitAccess>::get_writers(true) as *const (),
<Cell<u8> as BitAccess>::set_bits as *const ()
);
}
}

@@ -29,2 +29,3 @@ /*! `serde`-powered de/serialization.

domain::Domain,
index::BitRegister,
mem::BitMemory,

@@ -153,3 +154,3 @@ order::BitOrder,

O: BitOrder,
T: BitStore + BitMemory,
T: BitStore + BitRegister,
T::Mem: Deserialize<'de>,

@@ -156,0 +157,0 @@ {

@@ -51,2 +51,3 @@ /*! A dynamically-sized view into individual bits of a memory region.

BitMask,
BitRegister,
},

@@ -419,3 +420,3 @@ mem::BitMemory,

O: BitOrder,
T: BitStore + BitMemory,
T: BitStore + BitRegister,
{

@@ -1607,2 +1608,27 @@ /// Constructs a shared `&BitSlice` reference over a shared element.

/// Splits a mutable slice at some mid-point, without checking boundary
/// conditions or adding an alias marker.
///
/// This method has the same behavior as [`split_at_unchecked_mut`], except
/// that it does not apply an aliasing marker to the partitioned subslices.
///
/// # Safety
///
/// See [`split_at_unchecked_mut`] for safety requirements.
///
/// Additionally, this is only safe when `T` is alias-safe.
///
/// [`split_at_unchecked_mut`]: #method.split_at_unchecked_mut
#[inline]
pub(crate) unsafe fn split_at_unchecked_mut_noalias(
&mut self,
mid: usize,
) -> (&mut Self, &mut Self)
{
// Split the slice at the requested midpoint, adding an alias layer
let (head, tail) = self.split_at_unchecked_mut(mid);
// Remove the new alias layer.
(Self::unalias_mut(head), Self::unalias_mut(tail))
}
/// Swaps the bits at two indices without checking boundary conditions.

@@ -1780,10 +1806,3 @@ ///

}
}
/// Methods available only when `T` allows shared mutability.
impl<O, T> BitSlice<O, T>
where
O: BitOrder,
T: BitStore + Radium<<T as BitStore>::Mem>,
{
/// Constructs a `BitSlice` over aliased memory.

@@ -1793,3 +1812,5 @@ ///

/// Construction of a `BitSlice` over externally-aliased memory is unsound.
pub(crate) unsafe fn from_aliased_slice_unchecked(slice: &[T]) -> &Self {
pub(crate) unsafe fn from_aliased_slice_unchecked(
slice: &[T::Alias],
) -> &BitSlice<O, T::Alias> {
BitPtr::new_unchecked(

@@ -1802,3 +1823,10 @@ slice.as_ptr(),

}
}
/// Methods available only when `T` allows shared mutability.
impl<O, T> BitSlice<O, T>
where
O: BitOrder,
T: BitStore + Radium<Item = <T as BitStore>::Mem>,
{
/// Splits a mutable slice at some mid-point.

@@ -1826,28 +1854,2 @@ ///

}
/// Splits a mutable slice at some mid-point, without checking boundary
/// conditions.
///
/// This method has the same behavior as [`split_at_unchecked_mut`], except
/// that it does not apply an aliasing marker to the partitioned subslices.
///
/// # Safety
///
/// See [`split_at_unchecked_mut`] for safety requirements.
///
/// Because this method is defined only on `BitSlice`s whose `T` type is
/// alias-safe, the subslices do not need to be additionally marked.
///
/// [`split_at_unchecked_mut`]: #method.split_at_unchecked_mut
#[inline]
pub unsafe fn split_at_aliased_unchecked_mut(
&mut self,
mid: usize,
) -> (&mut Self, &mut Self)
{
// Split the slice at the requested midpoint, adding an alias layer
let (head, tail) = self.split_at_unchecked_mut(mid);
// Remove the new alias layer.
(Self::unalias_mut(head), Self::unalias_mut(tail))
}
}

@@ -1854,0 +1856,0 @@

@@ -934,3 +934,3 @@ //! `BitSlice` iterators

let mid = cmp::min(len, self.width);
let (out, rest) = unsafe { slice.split_at_aliased_unchecked_mut(mid) };
let (out, rest) = unsafe { slice.split_at_unchecked_mut_noalias(mid) };
self.slice = rest;

@@ -952,3 +952,3 @@ Some(out)

// then split at the chunk width, or remnant length.
.split_at_aliased_unchecked_mut(cmp::min(len, self.width))
.split_at_unchecked_mut_noalias(cmp::min(len, self.width))
};

@@ -968,3 +968,3 @@ self.slice = rest;

let (rest, out) =
unsafe { slice.split_at_aliased_unchecked_mut(len - size) };
unsafe { slice.split_at_unchecked_mut_noalias(len - size) };
self.slice = rest;

@@ -989,3 +989,3 @@ Some(out)

// then split at the start of the returned chunk.
.split_at_aliased_unchecked_mut(start)
.split_at_unchecked_mut_noalias(start)
};

@@ -1202,3 +1202,3 @@ self.slice = rest;

let (out, rest) =
unsafe { slice.split_at_aliased_unchecked_mut(self.width) };
unsafe { slice.split_at_unchecked_mut_noalias(self.width) };
self.slice = rest;

@@ -1216,3 +1216,3 @@ Some(out)

slice.get_unchecked_mut(start ..)
.split_at_aliased_unchecked_mut(self.width)
.split_at_unchecked_mut_noalias(self.width)
};

@@ -1230,3 +1230,3 @@ self.slice = rest;

let (rest, out) =
unsafe { slice.split_at_aliased_unchecked_mut(len - self.width) };
unsafe { slice.split_at_unchecked_mut_noalias(len - self.width) };
self.slice = rest;

@@ -1245,3 +1245,3 @@ Some(out)

slice.get_unchecked_mut(.. end)
.split_at_aliased_unchecked_mut(end - self.width)
.split_at_unchecked_mut_noalias(end - self.width)
};

@@ -1407,3 +1407,3 @@ self.slice = rest;

let mid = len - cmp::min(len, self.width);
let (rest, out) = unsafe { slice.split_at_aliased_unchecked_mut(mid) };
let (rest, out) = unsafe { slice.split_at_unchecked_mut_noalias(mid) };
self.slice = rest;

@@ -1425,3 +1425,3 @@ Some(out)

slice.get_unchecked_mut(.. end)
.split_at_aliased_unchecked_mut(mid)
.split_at_unchecked_mut_noalias(mid)
};

@@ -1440,3 +1440,3 @@ self.slice = rest;

let (out, rest) =
unsafe { slice.split_at_aliased_unchecked_mut(len) };
unsafe { slice.split_at_unchecked_mut_noalias(len) };
self.slice = rest;

@@ -1457,3 +1457,3 @@ Some(out)

let start = end.saturating_sub(self.width);
let (out, rest) = unsafe { slice.split_at_aliased_unchecked_mut(end) };
let (out, rest) = unsafe { slice.split_at_unchecked_mut_noalias(end) };
self.slice = rest;

@@ -1669,3 +1669,3 @@ Some(unsafe { out.get_unchecked_mut(start ..) })

let (rest, out) =
unsafe { slice.split_at_aliased_unchecked_mut(len - self.width) };
unsafe { slice.split_at_unchecked_mut_noalias(len - self.width) };
self.slice = rest;

@@ -1685,3 +1685,3 @@ Some(out)

slice.get_unchecked_mut(.. end)
.split_at_aliased_unchecked_mut(end - self.width)
.split_at_unchecked_mut_noalias(end - self.width)
};

@@ -1698,3 +1698,3 @@ self.slice = rest;

let (out, rest) =
unsafe { slice.split_at_aliased_unchecked_mut(self.width) };
unsafe { slice.split_at_unchecked_mut_noalias(self.width) };
self.slice = rest;

@@ -1714,3 +1714,3 @@ Some(out)

slice.get_unchecked_mut(start ..)
.split_at_aliased_unchecked_mut(self.width)
.split_at_unchecked_mut_noalias(self.width)
};

@@ -1963,3 +1963,3 @@ self.slice = rest;

let slice = mem::take(&mut self.slice);
let (out, rest) = slice.split_at_aliased_unchecked_mut(idx);
let (out, rest) = slice.split_at_unchecked_mut_noalias(idx);
self.slice = rest.get_unchecked_mut(1 ..);

@@ -1987,3 +1987,3 @@ Some(out)

let slice = mem::take(&mut self.slice);
let (rest, out) = slice.split_at_aliased_unchecked_mut(idx);
let (rest, out) = slice.split_at_unchecked_mut_noalias(idx);
self.slice = rest;

@@ -1990,0 +1990,0 @@ Some(out.get_unchecked_mut(1 ..))

@@ -5,2 +5,3 @@ //! Trait implementations for `BitSlice`

domain::Domain,
index::BitRegister,
mem::BitMemory,

@@ -256,3 +257,3 @@ order::BitOrder,

O: BitOrder,
T: BitStore + BitMemory,
T: BitStore + BitRegister,
{

@@ -259,0 +260,0 @@ type Error = &'a [T];

@@ -87,3 +87,3 @@ /*! Memory modeling.

/// The modifier type over `Self::Mem` used to perform memory access.
type Access: BitAccess<Self::Mem>;
type Access: BitAccess<Item = Self::Mem>;

@@ -101,5 +101,3 @@ /// A sibling `BitStore` implementor that performs alias-aware memory

/// that `Radium` is only implemented once is not guaranteed.
type Alias: BitStore
+ Radium<Self::Mem>
+ Radium<<Self::Alias as BitStore>::Mem>;
type Alias: BitStore + Radium<Item = Self::Mem>;

@@ -253,3 +251,3 @@ /// Marker for the thread safety of the implementor.

where
Self: Radium<R>,
Self: Radium<Item = R>,
R: BitRegister,

@@ -256,0 +254,0 @@ {

@@ -26,3 +26,6 @@ /*! View constructors for memory regions.

use crate::{
index::BitIdx,
index::{
BitIdx,
BitRegister,
},
mem::BitMemory,

@@ -123,3 +126,3 @@ order::BitOrder,

impl<T> BitView for T
where T: BitStore + BitMemory
where T: BitStore + BitRegister
{

@@ -150,3 +153,3 @@ type Mem = T::Mem;

impl<T> BitView for [T]
where T: BitStore + BitMemory
where T: BitStore + BitRegister
{

@@ -351,3 +354,3 @@ type Mem = T::Mem;

A: AsRef<[T]>,
T: BitStore + BitMemory,
T: BitStore + BitRegister,
{

@@ -365,3 +368,3 @@ #[inline]

A: AsMut<[T]>,
T: BitStore + BitMemory,
T: BitStore + BitRegister,
{

@@ -368,0 +371,0 @@ #[inline]

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display