Skip to main content

TypedHeader

Enum TypedHeader 

Source
pub enum TypedHeader {
Show 62 variants Via(Via), From(From), To(To), Contact(Contact), CallId(CallId), CSeq(CSeq), Route(Route), RecordRoute(RecordRoute), MaxForwards(MaxForwards), ContentType(ContentType), ContentLength(ContentLength), Expires(Expires), Authorization(Authorization), WwwAuthenticate(WwwAuthenticate), ProxyAuthenticate(ProxyAuthenticate), ProxyAuthorization(ProxyAuthorization), AuthenticationInfo(AuthenticationInfo), Accept(Accept), Allow(Allow), ReplyTo(ReplyTo), ReferTo(ReferTo), ReferredBy(ReferredBy), Require(Require), Warning(Vec<Warning>), ContentDisposition(ContentDisposition), Subject(Subject), Event(Event), SubscriptionState(SubscriptionState), ContentEncoding(ContentEncoding), ContentLanguage(ContentLanguage), AcceptEncoding(AcceptEncoding), AcceptLanguage(AcceptLanguage), MinExpires(MinExpires), MimeVersion(MimeVersion), Supported(Supported), Unsupported(Unsupported), ProxyRequire(ProxyRequire), Date(DateTime<FixedOffset>), Timestamp((NotNan<f32>, Option<NotNan<f32>>)), Organization(Organization), Priority(Priority), Server(Vec<String>), UserAgent(Vec<String>), InReplyTo(InReplyTo), RetryAfter(RetryAfter), ErrorInfo(ErrorInfoHeader), AlertInfo(AlertInfoHeader), CallInfo(CallInfo), Path(Path), ServiceRoute(ServiceRoute), Reason(Reason), SessionExpires(SessionExpires), MinSE(MinSE), RSeq(RSeq), RAck(RAck), SipETag(SipETag), SipIfMatch(SipIfMatch), AllowEvents(AllowEvents), PAssertedIdentity(PAssertedIdentity), PPreferredIdentity(PPreferredIdentity), Identity(Identity), Other(HeaderName, HeaderValue),
}
Expand description

A strongly-typed representation of a SIP header.

This enum provides a type-safe way to work with parsed SIP headers. Each variant corresponds to a specific header type with its appropriately typed value.

Unlike the more generic Header, which stores headers as name-value pairs, TypedHeader stores the header’s value in a strongly-typed form, making it safer and more convenient to work with known header types.

§Examples

use rvoip_sip_core::prelude::*;
use std::convert::TryFrom;

// Create a typed Call-ID header
let call_id = CallId::new("f81d4fae-7dec-11d0-a765-00a0c91e6bf6@example.com");
let header = TypedHeader::CallId(call_id);

// Access the header name
assert_eq!(header.name(), HeaderName::CallId);

// Convert to string representation
let header_str = header.to_string();
assert!(header_str.contains("Call-ID"));
assert!(header_str.contains("f81d4fae-7dec-11d0-a765-00a0c91e6bf6@example.com"));

Variants§

§

Via(Via)

§

From(From)

§

To(To)

§

Contact(Contact)

§

CallId(CallId)

§

CSeq(CSeq)

§

Route(Route)

§

RecordRoute(RecordRoute)

§

MaxForwards(MaxForwards)

§

ContentType(ContentType)

§

ContentLength(ContentLength)

§

Expires(Expires)

§

Authorization(Authorization)

§

WwwAuthenticate(WwwAuthenticate)

§

ProxyAuthenticate(ProxyAuthenticate)

§

ProxyAuthorization(ProxyAuthorization)

§

AuthenticationInfo(AuthenticationInfo)

§

Accept(Accept)

§

Allow(Allow)

§

ReplyTo(ReplyTo)

§

ReferTo(ReferTo)

§

ReferredBy(ReferredBy)

§

Require(Require)

§

Warning(Vec<Warning>)

§

ContentDisposition(ContentDisposition)

§

Subject(Subject)

§

Event(Event)

§

SubscriptionState(SubscriptionState)

§

ContentEncoding(ContentEncoding)

§

ContentLanguage(ContentLanguage)

§

AcceptEncoding(AcceptEncoding)

§

AcceptLanguage(AcceptLanguage)

§

MinExpires(MinExpires)

§

MimeVersion(MimeVersion)

§

Supported(Supported)

§

Unsupported(Unsupported)

§

ProxyRequire(ProxyRequire)

§

Date(DateTime<FixedOffset>)

§

Timestamp((NotNan<f32>, Option<NotNan<f32>>))

§

Organization(Organization)

§

Priority(Priority)

§

Server(Vec<String>)

§

UserAgent(Vec<String>)

§

InReplyTo(InReplyTo)

§

RetryAfter(RetryAfter)

§

ErrorInfo(ErrorInfoHeader)

§

AlertInfo(AlertInfoHeader)

§

CallInfo(CallInfo)

§

Path(Path)

§

ServiceRoute(ServiceRoute)

§

Reason(Reason)

§

SessionExpires(SessionExpires)

§

MinSE(MinSE)

§

RSeq(RSeq)

§

RAck(RAck)

RAck header (RFC 3262 §7.2) — acknowledges a reliable provisional response in a PRACK request. Carries rseq, cseq, and method.

§

SipETag(SipETag)

§

SipIfMatch(SipIfMatch)

§

AllowEvents(AllowEvents)

§

PAssertedIdentity(PAssertedIdentity)

P-Asserted-Identity (RFC 3325)

§

PPreferredIdentity(PPreferredIdentity)

P-Preferred-Identity (RFC 3325)

§

Identity(Identity)

Identity (RFC 8224) — STIR signed PASSporT token

§

Other(HeaderName, HeaderValue)

Represents an unknown or unparsed header.

Implementations§

Source§

impl TypedHeader

Source

pub fn name(&self) -> HeaderName

Returns the name of the header

Source

pub fn as_typed_ref<'a, T>(&'a self) -> Option<&'a T>
where T: TypedHeaderTrait + 'static + Debug, <T as TypedHeaderTrait>::Name: Debug,

Try to convert this TypedHeader to a reference of a specific header type

This method is used internally by the HeaderAccess trait implementations to provide type-safe access to headers.

Trait Implementations§

Source§

impl Clone for TypedHeader

Source§

fn clone(&self) -> TypedHeader

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 TypedHeader

Source§

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

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

impl<'de> Deserialize<'de> for TypedHeader

Source§

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

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

impl Display for TypedHeader

Source§

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

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

impl From<&TypedHeader> for HeaderName

Source§

fn from(header: &TypedHeader) -> HeaderName

Converts to this type from the input type.
Source§

impl PartialEq for TypedHeader

Source§

fn eq(&self, other: &TypedHeader) -> 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 Serialize for TypedHeader

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 StructuralPartialEq for TypedHeader

Source§

impl TryFrom<&Header> for TypedHeader

Source§

type Error = Error

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

fn try_from(header: &Header) -> Result<TypedHeader, Error>

Performs the conversion.
Source§

impl TryFrom<Header> for TypedHeader

Source§

type Error = Error

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

fn try_from(header: Header) -> Result<TypedHeader, Error>

Performs the conversion.

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<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

Source§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

Source§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

Source§

fn implicit( self, class: Class, constructed: bool, tag: u32, ) -> TaggedParser<'a, Implicit, Self, E>

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> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. 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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

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

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> SipJson for T

Source§

fn to_sip_value(&self) -> Result<SipValue, SipJsonError>

Convert this type to a SipValue. Read more
Source§

fn from_sip_value(value: &SipValue) -> Result<T, SipJsonError>

Create this type from a SipValue. Read more
Source§

impl<T> SipJsonExt for T

Source§

fn path(&self, path: impl AsRef<str>) -> Option<SipValue>

Simple path accessor that returns an Option directly

Source§

fn path_str(&self, path: impl AsRef<str>) -> Option<String>

Get a string value at the given path

Source§

fn path_str_or(&self, path: impl AsRef<str>, default: &str) -> String

Get a string value at the given path, or return the default value if not found

Source§

fn to_sip_value(&self) -> Result<SipValue, SipJsonError>

Convert to a SipValue. Read more
Source§

fn from_sip_value(value: &SipValue) -> Result<T, SipJsonError>

Convert from a SipValue. Read more
Source§

fn get_path(&self, path: impl AsRef<str>) -> SipValue

Access a value via path notation (e.g., “headers.from.tag”). Read more
Source§

fn path_accessor(&self) -> PathAccessor

Get a PathAccessor for chained access to fields. Read more
Source§

fn query(&self, query_str: impl AsRef<str>) -> Vec<SipValue>

Query for values using a JSONPath-like syntax. Read more
Source§

fn to_json_string(&self) -> Result<String, SipJsonError>

Convert to a JSON string. Read more
Source§

fn to_json_string_pretty(&self) -> Result<String, SipJsonError>

Convert to a pretty-printed JSON string. Read more
Source§

fn from_json_str(json_str: &str) -> Result<T, SipJsonError>

Create from a JSON string. Read more
Source§

impl<T> SipMessageJson for T
where T: SipJsonExt,

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<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more