Skip to content
Open
Show file tree
Hide file tree
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,11 @@ debug = true
debug = true

[package.metadata.docs.rs]
features = ["borsh", "serde", "zeroize"]
all-features = true
# Enables the `docsrs` config attribute when running on docs.rs,
# which always uses the latest nightly compiler.
# Idea taken from <https://stackoverflow.com/a/70914430>.
rustdoc-flags = ["--cfg", "docsrs"]

[package.metadata.release]
no-dev-version = true
Expand Down
6 changes: 1 addition & 5 deletions src/array_string.rs
Original file line number Diff line number Diff line change
Expand Up @@ -580,7 +580,6 @@ impl<const CAP: usize> FromStr for ArrayString<CAP>
}

#[cfg(feature="serde")]
/// Requires crate feature `"serde"`
impl<const CAP: usize> Serialize for ArrayString<CAP>
{
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
Expand All @@ -591,7 +590,6 @@ impl<const CAP: usize> Serialize for ArrayString<CAP>
}

#[cfg(feature="serde")]
/// Requires crate feature `"serde"`
impl<'de, const CAP: usize> Deserialize<'de> for ArrayString<CAP>
{
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
Expand Down Expand Up @@ -629,15 +627,13 @@ impl<'de, const CAP: usize> Deserialize<'de> for ArrayString<CAP>
}

#[cfg(feature = "borsh")]
/// Requires crate feature `"borsh"`
impl<const CAP: usize> borsh::BorshSerialize for ArrayString<CAP> {
fn serialize<W: borsh::io::Write>(&self, writer: &mut W) -> borsh::io::Result<()> {
<str as borsh::BorshSerialize>::serialize(&*self, writer)
}
}

#[cfg(feature = "borsh")]
/// Requires crate feature `"borsh"`
impl<const CAP: usize> borsh::BorshDeserialize for ArrayString<CAP> {
fn deserialize_reader<R: borsh::io::Read>(reader: &mut R) -> borsh::io::Result<Self> {
let len = <u32 as borsh::BorshDeserialize>::deserialize_reader(reader)? as usize;
Expand Down Expand Up @@ -683,7 +679,7 @@ impl<'a, const CAP: usize> TryFrom<fmt::Arguments<'a>> for ArrayString<CAP>
}

#[cfg(feature = "zeroize")]
/// "Best efforts" zeroing of the `ArrayString`'s buffer when the `zeroize` feature is enabled.
/// "Best efforts" zeroing of the `ArrayString`'s buffer.
///
/// The length is set to 0, and the buffer is dropped and zeroized.
/// Cannot ensure that previous moves of the `ArrayString` did not leave values on the stack.
Expand Down
8 changes: 1 addition & 7 deletions src/arrayvec.rs
Original file line number Diff line number Diff line change
Expand Up @@ -850,7 +850,7 @@ impl<T, const CAP: usize> IntoIterator for ArrayVec<T, CAP> {


#[cfg(feature = "zeroize")]
/// "Best efforts" zeroing of the `ArrayVec`'s buffer when the `zeroize` feature is enabled.
/// "Best efforts" zeroing of the `ArrayVec`'s buffer.
///
/// The length is set to 0, and the buffer is dropped and zeroized.
/// Cannot ensure that previous moves of the `ArrayVec` did not leave values on the stack.
Expand Down Expand Up @@ -1254,8 +1254,6 @@ impl<T, const CAP: usize> Ord for ArrayVec<T, CAP> where T: Ord {

#[cfg(feature="std")]
/// `Write` appends written data to the end of the vector.
///
/// Requires `features="std"`.
impl<const CAP: usize> io::Write for ArrayVec<u8, CAP> {
fn write(&mut self, data: &[u8]) -> io::Result<usize> {
let len = cmp::min(self.remaining_capacity(), data.len());
Expand All @@ -1267,7 +1265,6 @@ impl<const CAP: usize> io::Write for ArrayVec<u8, CAP> {
}

#[cfg(feature="serde")]
/// Requires crate feature `"serde"`
impl<T: Serialize, const CAP: usize> Serialize for ArrayVec<T, CAP> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where S: Serializer
Expand All @@ -1277,7 +1274,6 @@ impl<T: Serialize, const CAP: usize> Serialize for ArrayVec<T, CAP> {
}

#[cfg(feature="serde")]
/// Requires crate feature `"serde"`
impl<'de, T: Deserialize<'de>, const CAP: usize> Deserialize<'de> for ArrayVec<T, CAP> {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where D: Deserializer<'de>
Expand Down Expand Up @@ -1314,7 +1310,6 @@ impl<'de, T: Deserialize<'de>, const CAP: usize> Deserialize<'de> for ArrayVec<T
}

#[cfg(feature = "borsh")]
/// Requires crate feature `"borsh"`
impl<T, const CAP: usize> borsh::BorshSerialize for ArrayVec<T, CAP>
where
T: borsh::BorshSerialize,
Expand All @@ -1325,7 +1320,6 @@ where
}

#[cfg(feature = "borsh")]
/// Requires crate feature `"borsh"`
impl<T, const CAP: usize> borsh::BorshDeserialize for ArrayVec<T, CAP>
where
T: borsh::BorshDeserialize,
Expand Down
1 change: 0 additions & 1 deletion src/errors.rs
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,6 @@ impl<T> CapacityError<T> {
const CAPERROR: &'static str = "insufficient capacity";

#[cfg(feature="std")]
/// Requires `features="std"`.
impl<T: Any> Error for CapacityError<T> {}

impl<T> fmt::Display for CapacityError<T> {
Expand Down
3 changes: 3 additions & 0 deletions src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,9 @@
//!
#![doc(html_root_url="https://docs.rs/arrayvec/0.7/")]
#![cfg_attr(not(feature="std"), no_std)]
// This enables the nightly feature `doc_auto_cfg` when running on docs.rs,
// which always uses the nightly compiler.
#![cfg_attr(docsrs, feature(doc_auto_cfg))]

#[cfg(feature="serde")]
extern crate serde;
Expand Down