Skip to main content

HttpProvider

Struct HttpProvider 

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

One external system holding data about a subject; built with HttpProvider::new and registered with Privacy::provider.

Implementations§

Source§

impl HttpProvider

Source

pub fn new(name: impl Into<String>, url: impl Into<String>) -> Self

A provider named name, reached at url, whose /export, /erase/plan and /erase/apply paths are appended to url.

Source

pub fn secret_env(self, name: impl Into<String>) -> Self

The config/env variable holding this provider’s HMAC secret, read through the config port at call time. None, missing or empty reports not_configured — a call this module cannot sign is not one it sends.

Source

pub fn timeout(self, timeout: Duration) -> Self

The deadline for one call, clamped up to the port ceiling at send time.

Source

pub fn max_response_bytes(self, max_response_bytes: usize) -> Self

The most bytes of a response this module will read, clamped to the port ceiling. A larger response is invalid_response.

Source

pub fn account(self) -> Self

Marks this provider as the one holding the identity itself — the accounts table, the CRM’s contact record, the identity provider the others key on.

Why it must be erased last. Erasure identifies its subject by a value (acct-1). Every provider after the account provider is reached through that value, and the provider that holds the identity can delete it. Called in registration order, a CRM holding only account_id might be asked to erase after the accounts table is already gone — and a row keyed on a subject the calling deployment no longer holds an identifier for cannot be found, let alone erased. The row survives and the erasure reports itself complete.

So marked providers sort after every unmarked one, in all three loops (in_erasure_order): export, plan and apply. Within each group the registration order is kept, so the answer is stable and a reader can see the sequence a build produced rather than a sort’s opinion of it.

A build is expected to mark at most one provider this way — the account is one record however many systems mirror it — but nothing breaks if it marks several: they go last, in the order they were registered.

Source

pub fn name(&self) -> &str

The provider’s name, as a caller’s response reports it.

Trait Implementations§

Source§

impl Clone for HttpProvider

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 HttpProvider

Source§

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

Formats the value using the given formatter. Read more

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> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

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

Source§

fn from_ref(input: &T) -> T

Converts to this type from a reference to the input type.
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> 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 = !

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