pub enum FeedPrivacy {
Public,
Private(String),
}Expand description
The privacy classification of a feed URL — the output of
classify_feed_privacy.
A private feed carries a secret (a token / key / auth credential) in the
URL itself — a Substack …/feed/private/<token>, a Patreon ?auth=… feed,
a Ghost members ?uuid= feed, a private-podcast token feed (Supercast,
Supporting Cast, tokened Megaphone/Acast+), and so on. FeatherReader stores a
user’s subscriptions as records in their public PDS (unauthenticated
getRecord / listRecords + the firehose, retained even after delete), so
writing such a URL anywhere — the PDS or the server’s own store — would risk
leaking paid / members-only access.
Decision (stopgap until atproto permissioned data ships): FeatherReader
supports PUBLIC feeds only. A feed classified FeedPrivacy::Private is
refused at the add / import boundary — never fetched, never stored, never
written to the PDS. There is no local-secret fallback and no override: the
server holds NO private secret, ever, which keeps “your data lives in your
public PDS” 100% honest.
Variants§
Public
No secret detected in the URL; safe to add as a public feed.
Private(String)
A secret was detected in the URL. The String is a short, human-readable
reason (for logging / the skip report), e.g. "substack private feed path". The feed is refused — not fetched, stored, or written anywhere.
Implementations§
Source§impl FeedPrivacy
impl FeedPrivacy
Sourcepub fn is_private(&self) -> bool
pub fn is_private(&self) -> bool
Whether this classification is FeedPrivacy::Private.
Trait Implementations§
Source§impl Clone for FeedPrivacy
impl Clone for FeedPrivacy
Source§fn clone(&self) -> FeedPrivacy
fn clone(&self) -> FeedPrivacy
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for FeedPrivacy
impl Debug for FeedPrivacy
impl Eq for FeedPrivacy
Source§impl PartialEq for FeedPrivacy
impl PartialEq for FeedPrivacy
impl StructuralPartialEq for FeedPrivacy
Auto Trait Implementations§
impl Freeze for FeedPrivacy
impl RefUnwindSafe for FeedPrivacy
impl Send for FeedPrivacy
impl Sync for FeedPrivacy
impl Unpin for FeedPrivacy
impl UnsafeUnpin for FeedPrivacy
impl UnwindSafe for FeedPrivacy
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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