Type Alias amplify::confinement::SmallString

source ·
pub type SmallString = Confined<String, ZERO, U16>;
Expand description

String with maximum 2^16-1 characters.

Aliased Type§

struct SmallString(/* private fields */);

Implementations§

source§

impl<'c, C, const MIN_LEN: usize, const MAX_LEN: usize> Confined<C, MIN_LEN, MAX_LEN>where C: Collection + 'c, &'c mut C: IntoIterator<Item = &'c mut <C as Collection>::Item>,

source

pub fn iter_mut(&'c mut self) -> <&'c mut C as IntoIterator>::IntoIter

Returns an iterator that allows modifying each value.

The iterator yields all items from start to end.

source§

impl<'c, C, const MIN_LEN: usize, const MAX_LEN: usize> Confined<C, MIN_LEN, MAX_LEN>where C: KeyedCollection + 'c, &'c mut C: IntoIterator<Item = (&'c <C as KeyedCollection>::Key, &'c mut <C as KeyedCollection>::Value)>,

source

pub fn keyed_values_mut(&'c mut self) -> <&'c mut C as IntoIterator>::IntoIter

Returns an iterator that allows modifying each value for each key.

source§

impl<C: Collection, const MIN_LEN: usize, const MAX_LEN: usize> Confined<C, MIN_LEN, MAX_LEN>

source

pub fn try_from(col: C) -> Result<Self, Error>

Tries to construct a confinement over a collection. Fails if the number of items in the collection exceeds one of the confinement bounds.

source

pub fn try_from_iter<I: IntoIterator<Item = C::Item>>( iter: I ) -> Result<Self, Error>

Tries to construct a confinement with a collection of elements taken from an iterator. Fails if the number of items in the collection exceeds one of the confinement bounds.

source

pub fn as_inner(&self) -> &C

Returns inner collection type

source

pub fn to_inner(&self) -> Cwhere C: Clone,

Clones inner collection type and returns it

source

pub fn into_inner(self) -> C

Decomposes into the inner collection type

source

pub fn push(&mut self, elem: C::Item) -> Result<(), Error>

Attempts to add a single element to the confined collection. Fails if the number of elements in the collection already maximal.

source

pub fn extend<T: IntoIterator<Item = C::Item>>( &mut self, iter: T ) -> Result<(), Error>

Attempts to add all elements from an iterator to the confined collection. Fails if the number of elements in the collection already maximal.

source

pub fn unbox(self) -> C

Removes confinement and returns the underlying collection.

source§

impl<C, const MAX_LEN: usize> Confined<C, ZERO, MAX_LEN>where C: Default + Collection,

source

pub fn new() -> Self

Constructs a new confinement containing no elements.

source

pub fn with_capacity(capacity: usize) -> Self

Constructs a new confinement containing no elements, but with a pre-allocated storage for the capacity of elements.

source

pub fn clear(&mut self)

Removes all elements from the confined collection.

source§

impl<C, const MAX_LEN: usize> Confined<C, ONE, MAX_LEN>where C: Default + Collection,

source

pub fn with(elem: C::Item) -> Self

Constructs a confinement with a collection made of a single required element.

source§

impl<C, const MIN_LEN: usize> Confined<C, MIN_LEN, U8>where C: Default + Collection,

source

pub fn len_u8(&self) -> u8

Returns number of elements in the confined collection as u8. The confinement guarantees that the collection length can’t exceed u8::MAX.

source§

impl<C, const MIN_LEN: usize> Confined<C, MIN_LEN, U16>where C: Default + Collection,

source

pub fn len_u16(&self) -> u16

Returns number of elements in the confined collection as u16. The confinement guarantees that the collection length can’t exceed u16::MAX.

source§

impl<C, const MIN_LEN: usize> Confined<C, MIN_LEN, U24>where C: Default + Collection,

source

pub fn len_u24(&self) -> u24

Returns number of elements in the confined collection as u24. The confinement guarantees that the collection length can’t exceed u24::MAX.

source§

impl<C, const MIN_LEN: usize> Confined<C, MIN_LEN, U32>where C: Default + Collection,

source

pub fn len_u32(&self) -> u32

Returns number of elements in the confined collection as u32. The confinement guarantees that the collection length can’t exceed u32::MAX.

source§

impl<C: KeyedCollection, const MIN_LEN: usize, const MAX_LEN: usize> Confined<C, MIN_LEN, MAX_LEN>

source

pub fn get_mut(&mut self, key: &C::Key) -> Option<&mut C::Value>

Gets mutable reference to an element of the collection.

source

pub fn insert( &mut self, key: C::Key, value: C::Value ) -> Result<Option<C::Value>, Error>

Inserts a new value into the confined collection under a given key. Fails if the collection already contains maximum number of elements allowed by the confinement.

source§

impl<C, const MAX_LEN: usize> Confined<C, ONE, MAX_LEN>where C: Default + KeyedCollection,

source

pub fn with_key_value(key: C::Key, value: C::Value) -> Self

Constructs a confinement with a collection made of a single required key-value pair.

source§

impl<const MAX_LEN: usize> Confined<String, ZERO, MAX_LEN>

source

pub fn pop(&mut self) -> Option<char>

Removes the last character from a string and returns it, or None if it is empty.

source§

impl<const MIN_LEN: usize, const MAX_LEN: usize> Confined<String, MIN_LEN, MAX_LEN>

source

pub fn remove(&mut self, index: usize) -> Result<char, Error>

Removes a single character from the confined string, unless the string doesn’t shorten more than the confinement requirement. Errors otherwise.

Trait Implementations§

source§

impl<C, const MIN_LEN: usize, const MAX_LEN: usize> AsMut<[<C as Collection>::Item]> for Confined<C, MIN_LEN, MAX_LEN>where C: Collection + AsMut<[C::Item]>,

source§

fn as_mut(&mut self) -> &mut [C::Item]

Converts this type into a mutable reference of the (usually inferred) input type.
source§

impl<C, const MIN_LEN: usize, const MAX_LEN: usize> AsRef<[<C as Collection>::Item]> for Confined<C, MIN_LEN, MAX_LEN>where C: Collection + AsRef<[C::Item]>,

source§

fn as_ref(&self) -> &[C::Item]

Converts this type into a shared reference of the (usually inferred) input type.
source§

impl<C, const MIN_LEN: usize, const MAX_LEN: usize> Borrow<[<C as Collection>::Item]> for Confined<C, MIN_LEN, MAX_LEN>where C: Collection + Borrow<[C::Item]>,

source§

fn borrow(&self) -> &[C::Item]

Immutably borrows from an owned value. Read more
source§

impl<C, const MIN_LEN: usize, const MAX_LEN: usize> BorrowMut<[<C as Collection>::Item]> for Confined<C, MIN_LEN, MAX_LEN>where C: Collection + BorrowMut<[C::Item]>,

source§

fn borrow_mut(&mut self) -> &mut [C::Item]

Mutably borrows from an owned value. Read more
source§

impl<C: Clone + Collection, const MIN_LEN: usize, const MAX_LEN: usize> Clone for Confined<C, MIN_LEN, MAX_LEN>

source§

fn clone(&self) -> Confined<C, MIN_LEN, MAX_LEN>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<C: Debug + Collection, const MIN_LEN: usize, const MAX_LEN: usize> Debug for Confined<C, MIN_LEN, MAX_LEN>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<C, const MAX_LEN: usize> Default for Confined<C, ZERO, MAX_LEN>where C: Default + Collection,

source§

fn default() -> Self

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

impl<C: Collection, const MIN_LEN: usize, const MAX_LEN: usize> Deref for Confined<C, MIN_LEN, MAX_LEN>

§

type Target = C

The resulting type after dereferencing.
source§

fn deref(&self) -> &Self::Target

Dereferences the value.
source§

impl<C, const MIN_LEN: usize, const MAX_LEN: usize> Display for Confined<C, MIN_LEN, MAX_LEN>where C: Display + Collection,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<C, const MIN_LEN: usize, const MAX_LEN: usize> FromStr for Confined<C, MIN_LEN, MAX_LEN>where C: FromStr + Collection,

§

type Err = <C as FromStr>::Err

The associated error which can be returned from parsing.
source§

fn from_str(s: &str) -> Result<Self, Self::Err>

Parses a string s to return a value of this type. Read more
source§

impl<C: Hash + Collection, const MIN_LEN: usize, const MAX_LEN: usize> Hash for Confined<C, MIN_LEN, MAX_LEN>

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)where H: Hasher, Self: Sized,

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

impl<C, const MIN_LEN: usize, const MAX_LEN: usize> Index<Range<usize>> for Confined<C, MIN_LEN, MAX_LEN>where C: Index<Range<usize>, Output = [C::Item]> + Collection,

§

type Output = [<C as Collection>::Item]

The returned type after indexing.
source§

fn index(&self, index: Range<usize>) -> &Self::Output

Performs the indexing (container[index]) operation. Read more
source§

impl<C, const MIN_LEN: usize, const MAX_LEN: usize> Index<RangeFrom<usize>> for Confined<C, MIN_LEN, MAX_LEN>where C: Index<RangeFrom<usize>, Output = [C::Item]> + Collection,

§

type Output = [<C as Collection>::Item]

The returned type after indexing.
source§

fn index(&self, index: RangeFrom<usize>) -> &Self::Output

Performs the indexing (container[index]) operation. Read more
source§

impl<C, const MIN_LEN: usize, const MAX_LEN: usize> Index<RangeFull> for Confined<C, MIN_LEN, MAX_LEN>where C: Index<RangeFull, Output = [C::Item]> + Collection,

§

type Output = [<C as Collection>::Item]

The returned type after indexing.
source§

fn index(&self, index: RangeFull) -> &Self::Output

Performs the indexing (container[index]) operation. Read more
source§

impl<C, const MIN_LEN: usize, const MAX_LEN: usize> Index<RangeInclusive<usize>> for Confined<C, MIN_LEN, MAX_LEN>where C: Index<RangeInclusive<usize>, Output = [C::Item]> + Collection,

§

type Output = [<C as Collection>::Item]

The returned type after indexing.
source§

fn index(&self, index: RangeInclusive<usize>) -> &Self::Output

Performs the indexing (container[index]) operation. Read more
source§

impl<C, const MIN_LEN: usize, const MAX_LEN: usize> Index<RangeTo<usize>> for Confined<C, MIN_LEN, MAX_LEN>where C: Index<RangeTo<usize>, Output = [C::Item]> + Collection,

§

type Output = [<C as Collection>::Item]

The returned type after indexing.
source§

fn index(&self, index: RangeTo<usize>) -> &Self::Output

Performs the indexing (container[index]) operation. Read more
source§

impl<C, const MIN_LEN: usize, const MAX_LEN: usize> Index<RangeToInclusive<usize>> for Confined<C, MIN_LEN, MAX_LEN>where C: Index<RangeToInclusive<usize>, Output = [C::Item]> + Collection,

§

type Output = [<C as Collection>::Item]

The returned type after indexing.
source§

fn index(&self, index: RangeToInclusive<usize>) -> &Self::Output

Performs the indexing (container[index]) operation. Read more
source§

impl<C, const MIN_LEN: usize, const MAX_LEN: usize> Index<usize> for Confined<C, MIN_LEN, MAX_LEN>where C: Index<usize, Output = C::Item> + Collection,

§

type Output = <C as Collection>::Item

The returned type after indexing.
source§

fn index(&self, index: usize) -> &Self::Output

Performs the indexing (container[index]) operation. Read more
source§

impl<C, const MIN_LEN: usize, const MAX_LEN: usize> IndexMut<Range<usize>> for Confined<C, MIN_LEN, MAX_LEN>where C: IndexMut<Range<usize>, Output = [C::Item]> + Collection,

source§

fn index_mut(&mut self, index: Range<usize>) -> &mut Self::Output

Performs the mutable indexing (container[index]) operation. Read more
source§

impl<C, const MIN_LEN: usize, const MAX_LEN: usize> IndexMut<RangeFrom<usize>> for Confined<C, MIN_LEN, MAX_LEN>where C: IndexMut<RangeFrom<usize>, Output = [C::Item]> + Collection,

source§

fn index_mut(&mut self, index: RangeFrom<usize>) -> &mut Self::Output

Performs the mutable indexing (container[index]) operation. Read more
source§

impl<C, const MIN_LEN: usize, const MAX_LEN: usize> IndexMut<RangeFull> for Confined<C, MIN_LEN, MAX_LEN>where C: IndexMut<RangeFull, Output = [C::Item]> + Collection,

source§

fn index_mut(&mut self, index: RangeFull) -> &mut Self::Output

Performs the mutable indexing (container[index]) operation. Read more
source§

impl<C, const MIN_LEN: usize, const MAX_LEN: usize> IndexMut<RangeInclusive<usize>> for Confined<C, MIN_LEN, MAX_LEN>where C: IndexMut<RangeInclusive<usize>, Output = [C::Item]> + Collection,

source§

fn index_mut(&mut self, index: RangeInclusive<usize>) -> &mut Self::Output

Performs the mutable indexing (container[index]) operation. Read more
source§

impl<C, const MIN_LEN: usize, const MAX_LEN: usize> IndexMut<RangeTo<usize>> for Confined<C, MIN_LEN, MAX_LEN>where C: IndexMut<RangeTo<usize>, Output = [C::Item]> + Collection,

source§

fn index_mut(&mut self, index: RangeTo<usize>) -> &mut Self::Output

Performs the mutable indexing (container[index]) operation. Read more
source§

impl<C, const MIN_LEN: usize, const MAX_LEN: usize> IndexMut<RangeToInclusive<usize>> for Confined<C, MIN_LEN, MAX_LEN>where C: IndexMut<RangeToInclusive<usize>, Output = [C::Item]> + Collection,

source§

fn index_mut(&mut self, index: RangeToInclusive<usize>) -> &mut Self::Output

Performs the mutable indexing (container[index]) operation. Read more
source§

impl<C, const MIN_LEN: usize, const MAX_LEN: usize> IndexMut<usize> for Confined<C, MIN_LEN, MAX_LEN>where C: IndexMut<usize, Output = C::Item> + Collection,

source§

fn index_mut(&mut self, index: usize) -> &mut Self::Output

Performs the mutable indexing (container[index]) operation. Read more
source§

impl<C, const MIN_LEN: usize, const MAX_LEN: usize> IntoIterator for Confined<C, MIN_LEN, MAX_LEN>where C: IntoIterator + Collection,

§

type Item = <C as IntoIterator>::Item

The type of the elements being iterated over.
§

type IntoIter = <C as IntoIterator>::IntoIter

Which kind of iterator are we turning this into?
source§

fn into_iter(self) -> Self::IntoIter

Creates an iterator from a value. Read more
source§

impl<C: Ord + Collection, const MIN_LEN: usize, const MAX_LEN: usize> Ord for Confined<C, MIN_LEN, MAX_LEN>

source§

fn cmp(&self, other: &Confined<C, MIN_LEN, MAX_LEN>) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Selfwhere Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Selfwhere Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Selfwhere Self: Sized + PartialOrd<Self>,

Restrict a value to a certain interval. Read more
source§

impl<C: PartialEq + Collection, const MIN_LEN: usize, const MAX_LEN: usize> PartialEq<Confined<C, MIN_LEN, MAX_LEN>> for Confined<C, MIN_LEN, MAX_LEN>

source§

fn eq(&self, other: &Confined<C, MIN_LEN, MAX_LEN>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<C: PartialOrd + Collection, const MIN_LEN: usize, const MAX_LEN: usize> PartialOrd<Confined<C, MIN_LEN, MAX_LEN>> for Confined<C, MIN_LEN, MAX_LEN>

source§

fn partial_cmp(&self, other: &Confined<C, MIN_LEN, MAX_LEN>) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

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

fn le(&self, other: &Rhs) -> bool

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

fn gt(&self, other: &Rhs) -> bool

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

fn ge(&self, other: &Rhs) -> bool

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

impl<const MIN_LEN: usize, const MAX_LEN: usize> TryFrom<&str> for Confined<String, MIN_LEN, MAX_LEN>

§

type Error = Error

The type returned in the event of a conversion error.
source§

fn try_from(value: &str) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl<C: Collection, const MIN_LEN: usize, const MAX_LEN: usize> Wrapper for Confined<C, MIN_LEN, MAX_LEN>

§

type Inner = C

Inner type wrapped by the current newtype
source§

fn from_inner(inner: Self::Inner) -> Self

Instantiates wrapper type with the inner data
source§

fn as_inner(&self) -> &Self::Inner

Returns reference to the inner representation for the wrapper type
source§

fn into_inner(self) -> Self::Inner

Unwraps the wrapper returning the inner type
source§

impl<C: Eq + Collection, const MIN_LEN: usize, const MAX_LEN: usize> Eq for Confined<C, MIN_LEN, MAX_LEN>

source§

impl<C: Collection, const MIN_LEN: usize, const MAX_LEN: usize> StructuralEq for Confined<C, MIN_LEN, MAX_LEN>

source§

impl<C: Collection, const MIN_LEN: usize, const MAX_LEN: usize> StructuralPartialEq for Confined<C, MIN_LEN, MAX_LEN>