Skip to main content

Nip17TextMessage

Struct Nip17TextMessage 

Source
pub struct Nip17TextMessage { /* private fields */ }
Expand description

A validated one-to-one kind-14 text-message rumor.

This first profile intentionally does not assign typed semantics to reply, subject, forwarding, media, or group tags. Exact unknown tags remain on the underlying rumor and therefore remain part of its event ID.

Implementations§

Source§

impl Nip17TextMessage

Source

pub fn from_rumor(rumor: NostrRumor) -> Result<Self, SoftchatError>

Validate a kind-14 rumor as one non-empty text message to one peer.

One canonical p tag is required. Its optional relay-hint and extension fields, plus all non-p tags, remain exact on the underlying rumor.

§Errors

Returns SoftchatError::InvalidNip17Message for an unsupported kind, empty text, malformed or duplicate recipient, or self-recipient.

Source

pub const fn id(&self) -> NostrEventId

Return the canonical rumor ID used for conversation references.

Source

pub fn sender(&self) -> NostrPublicKey

Return the rumor’s declared author.

The author is authenticated only when the rumor came from a validated NIP-59 envelope.

Source

pub fn recipient(&self) -> &NostrPublicKey

Return the one peer named by the canonical recipient tag.

Source

pub const fn created_at(&self) -> u64

Return the canonical application timestamp.

Source

pub fn content(&self) -> &str

Borrow the non-empty plain-text content.

Source

pub const fn rumor(&self) -> &NostrRumor

Borrow the complete exact rumor, including unknown tags.

Source

pub fn into_rumor(self) -> NostrRumor

Consume the typed view without changing the underlying rumor.

Trait Implementations§

Source§

impl Clone for Nip17TextMessage

Source§

fn clone(&self) -> Nip17TextMessage

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for Nip17TextMessage

Source§

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

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

impl PartialEq for Nip17TextMessage

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · 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 Eq for Nip17TextMessage

Source§

impl StructuralPartialEq for Nip17TextMessage

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
§

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

§

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

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

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

§

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.

§

impl<T, UT> HandleAlloc<UT> for T
where T: Send + Sync,

§

fn new_handle(value: Arc<T>) -> Handle

Create a new handle for an Arc value Read more
§

unsafe fn clone_handle(handle: Handle) -> Handle

Clone a handle Read more
§

unsafe fn consume_handle(handle: Handle) -> Arc<T>

Consume a handle, getting back the initial Arc<> Read more
§

unsafe fn get_arc(handle: Handle) -> Arc<Self>

Get a clone of the Arc<> using a “borrowed” handle. Read more
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<T> Same for T

Source§

type Output = T

Should always be Self
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, 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.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,