Skip to main content

EnvPolicy

Enum EnvPolicy 

Source
#[non_exhaustive]
pub enum EnvPolicy { Minimal, Inherit, Only(Vec<String>), }
Expand description

Which of the host’s environment variables reach the agent.

The default is EnvPolicy::Minimal. Inheriting the whole environment is what a CLI gets from a shell, but this crate is embedded in processes that hold unrelated secrets, and full inheritance hands every one of them to the agent and to every command the agent runs. That is a decision worth making deliberately, so it is the opt-in rather than the default.

Variants (Non-exhaustive)§

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
§

Minimal

Pass through only what the selected agent needs, per Agent::essential_env, plus anything set with crate::Request::env.

The crate owns this list rather than the caller, because “what does this CLI need to work” is knowledge about the agent, and an incomplete hand-written list produces a run that fails in a way that looks like an auth problem. Every agent is verified to authenticate under it by the live test suite.

§

Inherit

Pass the whole parent environment through, as a shell would.

Correct when the host process holds nothing the agent should not see, or when something environment-specific (a proxy, a custom CA, a vendor variable this crate does not know about) has to reach the CLI and enumerating it is impractical.

§

Only(Vec<String>)

Pass through only these names, plus anything set with crate::Request::env. Names unset in the parent are skipped.

Trait Implementations§

Source§

impl Clone for EnvPolicy

Source§

fn clone(&self) -> EnvPolicy

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 EnvPolicy

Source§

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

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

impl Default for EnvPolicy

Source§

fn default() -> EnvPolicy

Returns the “default value” for a type. Read more
Source§

impl Eq for EnvPolicy

Source§

impl PartialEq for EnvPolicy

Source§

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

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

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

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for EnvPolicy

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> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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