| { | ||
| "git": { | ||
| "sha1": "ab289dadce27076664b6039f4029404d856beb09" | ||
| "sha1": "129330cb9d12fbd44aabaa665b04d5378fe84d0e" | ||
| } | ||
| } |
+26
-24
@@ -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" |
+2
-2
@@ -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] |
+28
-25
@@ -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 () | ||
| ); | ||
| } | ||
| } |
+2
-1
@@ -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 @@ { |
+37
-35
@@ -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 @@ |
+18
-18
@@ -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]; |
+3
-5
@@ -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 @@ { |
+8
-5
@@ -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