Skip to content

Commit

Permalink
Add basic AssocArraySize docs (#96)
Browse files Browse the repository at this point in the history
Show how the trait can be used to accept const generic core arrays as
parameters and convert to `Array`/`ArrayN`.
  • Loading branch information
tarcieri authored Oct 19, 2024
1 parent 91d28d5 commit c4eff01
Showing 1 changed file with 16 additions and 1 deletion.
17 changes: 16 additions & 1 deletion src/traits.rs
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,22 @@ pub unsafe trait ArraySize: Unsigned {
+ IntoIterator<Item = T>;
}

/// Associates an [`ArraySize`] with a given type.
/// Associates an [`ArraySize`] with a given type. Can be used to write APIs which use `[T; N]`
/// and convert to [`Array`] internally.
///
/// # Example
///
/// ```
/// use hybrid_array::{ArrayN, AssocArraySize};
///
/// pub fn example<const N: usize>(bytes: &[u8; N])
/// where
/// [u8; N]: AssocArraySize + AsRef<ArrayN<u8, N>>
/// {
/// // _arrayn is ArrayN<u8, N>
/// let _arrayn = bytes.as_ref();
/// }
/// ```
pub trait AssocArraySize: Sized {
/// Size of an array type, expressed as a [`typenum`]-based [`ArraySize`].
type Size: ArraySize;
Expand Down

0 comments on commit c4eff01

Please sign in to comment.