Skip to main content

Episode

Struct Episode 

Source
pub struct Episode {
Show 13 fields pub title: String, pub link: String, pub enclosure_url: String, pub byte_len: u64, pub duration_secs: u64, pub published_at: i64, pub slug: Option<String>, pub order: Option<u32>, pub tracklist: Option<String>, pub body: Option<String>, pub links: Option<String>, pub bundle_title: Option<String>, pub special: bool,
}
Expand description

One episode of musicforprogramming.net.

Fields§

§title: String§link: String

The episode’s page on the site.

§enclosure_url: String

The audio enclosure URL, and the episode’s stable identity: enrichment records join to episodes by exact string equality against it.

§byte_len: u64

The byte length the feed declares for the enclosure.

§duration_secs: u64

The duration the feed declares in itunes:duration, in seconds.

An approximate total, never a measured audio length. Consumers must present it as approximate.

§published_at: i64

Publication time as whole seconds since the Unix epoch.

§slug: Option<String>

Site slug, when enrichment supplied one.

§order: Option<u32>

The site’s own catalog ordering, when enrichment supplied one.

§tracklist: Option<String>

Track listing as plain text, one track per line, when enrichment supplied one.

§body: Option<String>

Descriptive body as plain text, when enrichment supplied one.

§links: Option<String>

Related links as plain text, one per line, when enrichment supplied any.

§bundle_title: Option<String>

The site’s own title for this episode, when enrichment supplied one.

The feed says Episode 79: Corticyte where the site says 79: Corticyte, and anything replicating the site’s presentation wants the latter, which Episode::site_title resolves.

§special: bool

Whether the site flags this episode for distinct colouring.

Exactly one episode carries it today; absent enrichment every episode reports false, so an unknown flag is never mistaken for a set one. Presentation only: ordering, playback, and download all ignore it.

Implementations§

Source§

impl Episode

Source

pub fn id(&self) -> Cow<'_, str>

The episode’s stable filesystem-safe identifier, used to name its on-disk artifacts and as the slug clients pass over the wire.

The enrichment slug where one exists, a deterministic derivation from the enclosure URL otherwise, so the same episode resolves to the same name across runs whether or not enrichment succeeded. Borrowed from the slug in the enriched case, so scanning the catalog for one identifier allocates nothing.

Source§

impl Episode

Source

pub fn site_title(&self) -> &str

The title as the site itself writes it, which every view replicating the site draws.

Enrichment’s title where there is one, otherwise the feed’s with its Episode prefix stripped, since the feed writes Episode 79: Corticyte where the site writes 79: Corticyte - so an un-enriched catalog degrades to the same shape rather than a visibly different one.

Trait Implementations§

Source§

impl Clone for Episode

Source§

fn clone(&self) -> Self

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 Episode

Source§

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

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

impl<'de> Deserialize<'de> for Episode

Source§

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

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

impl PartialEq for Episode

Source§

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

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

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

Inequality operator !=. Read more
Source§

impl Serialize for Episode

Source§

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

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

impl StructuralPartialEq for Episode

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> 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> 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> 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 = !

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

fn try_from(value: U) -> Result<T, !>

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> 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