Skip to main content

SurrogateVault

Struct SurrogateVault 

Source
pub struct SurrogateVault(/* private fields */);
Expand description

Thread-safe, host-pinned vault mapping opaque <surrogate:kind:id> tokens to raw values.

Implementations§

Source§

impl SurrogateVault

Source

pub fn new() -> Self

Create a new, empty SurrogateVault.

Source

pub fn mint( &self, kind: &str, raw_value: impl Into<String>, ) -> Result<SurrogateHandle, ToolError>

Mint or retrieve an existing SurrogateHandle for (kind, raw_value).

§Errors

Returns ToolError if kind is empty or contains characters outside [a-zA-Z0-9_-], raw_value is empty, or the vault lock is poisoned.

Source

pub fn resolve_token(&self, token: &str) -> Result<String, ToolError>

Resolve an exact <surrogate:kind:id> token to its bound raw value.

Fails closed with ToolError if the token was not minted in this vault.

§Errors

Returns ToolError if token is unknown or the vault lock is poisoned.

Source

pub fn resolve_in_str_counted( &self, input: &str, ) -> Result<(String, usize), ToolError>

Resolve all <surrogate:kind:id> tokens embedded in input.

Returns Ok((resolved_string, replacement_count)) or fails closed with ToolError if any <surrogate:...> token in input is malformed or unknown.

§Errors

Returns ToolError if an unknown/malformed surrogate token is encountered or the vault lock is poisoned.

Source

pub fn resolve_in_str(&self, input: &str) -> Result<String, ToolError>

Resolve all <surrogate:kind:id> tokens embedded in input.

§Errors

Returns ToolError if an unknown/malformed surrogate token is encountered or the vault lock is poisoned.

Source

pub fn resolve_in_json(&self, value: &mut Value) -> Result<usize, ToolError>

Recursively resolve all <surrogate:kind:id> tokens across string values inside value.

Returns the total number of resolved tokens. Fails closed with ToolError if any surrogate token is unknown or malformed.

§Errors

Returns ToolError if an unknown/malformed surrogate token is encountered or the vault lock is poisoned.

Source

pub fn redact_str(&self, output: &str) -> Result<String, ToolError>

Replace any registered raw values occurring in output with their <surrogate:kind:id> tokens (longest raw values first so overlapping prefixes cannot leak partial secrets).

§Errors

Returns ToolError if the vault lock is poisoned.

Trait Implementations§

Source§

impl Clone for SurrogateVault

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 SurrogateVault

Source§

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

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

impl Default for SurrogateVault

Source§

fn default() -> Self

Returns the “default value” for a type. 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> 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> 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