Struct Identity

Source
pub struct Identity(/* private fields */);
Expand description

An ASCII printable string up to 4096 chars representing identity of a developer.

We deliberately do not define the internal structure of the identity such that it can be updated without changes to the consensus level.

Contract or schema validity doesn’t assume any checks on the identity; these checks must be performed at the application level.

Implementations§

Source§

impl Identity

Source

pub fn is_empty(&self) -> bool

Tests whether the identity is not provided, which is equal to an anonymous identity.

Source

pub fn is_anonymous(&self) -> bool

Tests whether the identity is anonymous.

Methods from Deref<Target = AsciiString>§

Source

pub fn capacity(&self) -> usize

Returns the number of bytes that this ASCII string buffer can hold without reallocating.

§Examples
let s = String::with_capacity(10);
assert!(s.capacity() >= 10);
Source

pub fn len(&self) -> usize

Returns the number of bytes in this ASCII string.

§Examples
let s = AsciiString::from_ascii("foo").unwrap();
assert_eq!(s.len(), 3);
Source

pub fn is_empty(&self) -> bool

Returns true if the ASCII string contains zero bytes.

§Examples
let mut s = AsciiString::new();
assert!(s.is_empty());
s.push(AsciiChar::from_ascii('a').unwrap());
assert!(!s.is_empty());

Methods from Deref<Target = AsciiStr>§

Source

pub fn as_str(&self) -> &str

Converts &self to a &str slice.

Source

pub fn as_bytes(&self) -> &[u8]

Converts &self into a byte slice.

Source

pub fn as_slice(&self) -> &[AsciiChar]

Returns the entire string as slice of AsciiChars.

Source

pub fn as_mut_slice(&mut self) -> &mut [AsciiChar]

Returns the entire string as mutable slice of AsciiChars.

Source

pub fn as_ptr(&self) -> *const AsciiChar

Returns a raw pointer to the AsciiStr’s buffer.

The caller must ensure that the slice outlives the pointer this function returns, or else it will end up pointing to garbage. Modifying the AsciiStr may cause it’s buffer to be reallocated, which would also make any pointers to it invalid.

Source

pub fn as_mut_ptr(&mut self) -> *mut AsciiChar

Returns an unsafe mutable pointer to the AsciiStr’s buffer.

The caller must ensure that the slice outlives the pointer this function returns, or else it will end up pointing to garbage. Modifying the AsciiStr may cause it’s buffer to be reallocated, which would also make any pointers to it invalid.

Source

pub fn to_ascii_string(&self) -> AsciiString

Copies the content of this AsciiStr into an owned AsciiString.

Source

pub fn len(&self) -> usize

Returns the number of characters / bytes in this ASCII sequence.

§Examples
let s = AsciiStr::from_ascii("foo").unwrap();
assert_eq!(s.len(), 3);
Source

pub fn is_empty(&self) -> bool

Returns true if the ASCII slice contains zero bytes.

§Examples
let mut empty = AsciiStr::from_ascii("").unwrap();
let mut full = AsciiStr::from_ascii("foo").unwrap();
assert!(empty.is_empty());
assert!(!full.is_empty());
Source

pub fn chars(&self) -> Chars<'_>

Returns an iterator over the characters of the AsciiStr.

Source

pub fn chars_mut(&mut self) -> CharsMut<'_>

Returns an iterator over the characters of the AsciiStr which allows you to modify the value of each AsciiChar.

Source

pub fn split(&self, on: AsciiChar) -> impl DoubleEndedIterator

Returns an iterator over parts of the AsciiStr separated by a character.

§Examples
let words = AsciiStr::from_ascii("apple banana lemon").unwrap()
    .split(AsciiChar::Space)
    .map(|a| a.as_str())
    .collect::<Vec<_>>();
assert_eq!(words, ["apple", "banana", "lemon"]);
Source

pub fn lines(&self) -> impl DoubleEndedIterator

Returns an iterator over the lines of the AsciiStr, which are themselves AsciiStrs.

Lines are ended with either LineFeed (\n), or CarriageReturn then LineFeed (\r\n).

The final line ending is optional.

Source

pub fn trim(&self) -> &AsciiStr

Returns an ASCII string slice with leading and trailing whitespace removed.

§Examples
let example = AsciiStr::from_ascii("  \twhite \tspace  \t").unwrap();
assert_eq!("white \tspace", example.trim());
Source

pub fn trim_start(&self) -> &AsciiStr

Returns an ASCII string slice with leading whitespace removed.

§Examples
let example = AsciiStr::from_ascii("  \twhite \tspace  \t").unwrap();
assert_eq!("white \tspace  \t", example.trim_start());
Source

pub fn trim_end(&self) -> &AsciiStr

Returns an ASCII string slice with trailing whitespace removed.

§Examples
let example = AsciiStr::from_ascii("  \twhite \tspace  \t").unwrap();
assert_eq!("  \twhite \tspace", example.trim_end());
Source

pub fn eq_ignore_ascii_case(&self, other: &AsciiStr) -> bool

Compares two strings case-insensitively.

Source

pub fn make_ascii_uppercase(&mut self)

Replaces lowercase letters with their uppercase equivalent.

Source

pub fn make_ascii_lowercase(&mut self)

Replaces uppercase letters with their lowercase equivalent.

Source

pub fn to_ascii_uppercase(&self) -> AsciiString

Returns a copy of this string where letters ‘a’ to ‘z’ are mapped to ‘A’ to ‘Z’.

Source

pub fn to_ascii_lowercase(&self) -> AsciiString

Returns a copy of this string where letters ‘A’ to ‘Z’ are mapped to ‘a’ to ‘z’.

Source

pub fn first(&self) -> Option<AsciiChar>

Returns the first character if the string is not empty.

Source

pub fn last(&self) -> Option<AsciiChar>

Returns the last character if the string is not empty.

Trait Implementations§

Source§

impl AsRef<RString<AsciiPrintable, AsciiPrintable, 1, 4096>> for Identity

Source§

fn as_ref(&self) -> &RString<AsciiPrintable, AsciiPrintable, 1, 4096>

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

impl Borrow<RString<AsciiPrintable, AsciiPrintable, 1, 4096>> for Identity

Source§

fn borrow(&self) -> &RString<AsciiPrintable, AsciiPrintable, 1, 4096>

Immutably borrows from an owned value. Read more
Source§

impl Clone for Identity

Source§

fn clone(&self) -> Identity

Returns a duplicate 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 CommitEncode for Identity

Source§

type CommitmentId = StrictHash

Type of the resulting commitment.
Source§

fn commit_encode(&self, engine: &mut CommitEngine)

Encodes the data for the commitment by writing them directly into a std::io::Write writer instance
Source§

impl Debug for Identity

Source§

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

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

impl Default for Identity

Source§

fn default() -> Identity

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

impl Deref for Identity

Source§

type Target = RString<AsciiPrintable, AsciiPrintable, 1, 4096>

The resulting type after dereferencing.
Source§

fn deref(&self) -> &<Identity as Deref>::Target

Dereferences the value.
Source§

impl<'de> Deserialize<'de> for Identity

Source§

fn deserialize<__D>( __deserializer: __D, ) -> Result<Identity, <__D as Deserializer<'de>>::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Display for Identity

Source§

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

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

impl From<&'static str> for Identity

Source§

fn from(s: &'static str) -> Identity

Converts to this type from the input type.
Source§

impl From<Identity> for RString<AsciiPrintable, AsciiPrintable, 1, 4096>

Source§

fn from(wrapped: Identity) -> RString<AsciiPrintable, AsciiPrintable, 1, 4096>

Converts to this type from the input type.
Source§

impl From<RString<AsciiPrintable, AsciiPrintable, 1, 4096>> for Identity

Source§

fn from(v: RString<AsciiPrintable, AsciiPrintable, 1, 4096>) -> Identity

Converts to this type from the input type.
Source§

impl FromStr for Identity

Source§

type Err = <<Identity as Wrapper>::Inner as FromStr>::Err

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

fn from_str(s: &str) -> Result<Identity, <Identity as FromStr>::Err>

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

impl Hash for Identity

Source§

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

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 Ord for Identity

Source§

fn cmp(&self, other: &Identity) -> Ordering

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

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

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

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

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

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized,

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

impl PartialEq for Identity

Source§

fn eq(&self, other: &Identity) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

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

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl PartialOrd for Identity

Source§

fn partial_cmp(&self, other: &Identity) -> 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

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

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

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

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
Source§

impl Serialize for Identity

Source§

fn serialize<__S>( &self, __serializer: __S, ) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl StrictDecode for Identity

Source§

impl StrictEncode for Identity

Source§

fn strict_encode<W>(&self, writer: W) -> Result<W, Error>
where W: TypedWrite,

Source§

fn strict_write(&self, writer: impl WriteRaw) -> Result<(), Error>

Source§

impl StrictTuple for Identity

Source§

impl StrictType for Identity

Source§

const STRICT_LIB_NAME: &'static str = LIB_NAME_ULTRASONIC

Source§

fn strict_name() -> Option<TypeName>

Source§

impl Wrapper for Identity

Source§

type Inner = RString<AsciiPrintable, AsciiPrintable, 1, 4096>

Inner type wrapped by the current newtype
Source§

fn from_inner(inner: <Identity as Wrapper>::Inner) -> Identity

Instantiates wrapper type with the inner data
Source§

fn as_inner(&self) -> &<Identity as Wrapper>::Inner

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

fn into_inner(self) -> <Identity as Wrapper>::Inner

Unwraps the wrapper returning the inner type
Source§

fn to_inner(&self) -> Self::Inner
where Self::Inner: Clone,

Clones inner data of the wrapped type and return them
Source§

fn copy(&self) -> Self
where Self: Sized, Self::Inner: Copy,

Copies the wrapped type
Source§

impl Eq for Identity

Source§

impl StrictProduct for Identity

Source§

impl StructuralPartialEq for Identity

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> CommitId for T
where T: CommitEncode,

Source§

fn commit(&self) -> CommitEngine

Source§

fn commit_id(&self) -> <T as CommitEncode>::CommitmentId

Performs commitment to client-side-validated data
Source§

impl<T> CommitmentLayout for T

Source§

fn commitment_layout() -> CommitLayout

Generate a descriptive commitment layout, which includes a description of each encoded field and the used hashing strategies.
Source§

impl<Q, K> Comparable<K> for Q
where Q: Ord + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn compare(&self, key: &K) -> Ordering

Compare self to key and return their ordering.
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> StrictDumb for T
where T: StrictType + Default,

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

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

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> VerifyEq for T
where T: Eq,

Source§

fn verify_eq(&self, other: &T) -> bool

Verifies commit-equivalence of two instances of the same type.
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,