Struct RawVariable

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

Raw reference to a shell variable.

Every method is unsafe because this type contains a raw pointer to an address owned by bash.

Whenever possible, use find or find_as_string functions to get the value of a shell variable.

Implementations§

Source§

impl RawVariable

Source

pub unsafe fn is_array(&self) -> bool

Returns true if the shell variable contains an indexed array.

§Safety

This method is unsafe because it does not check that the address of the shell variable is still valid.

Source

pub unsafe fn is_assoc(&self) -> bool

Returns true if the shell variable contains an associative array.

§Safety

This method is unsafe because it does not check that the address of the shell variable is still valid.

Source

pub unsafe fn get(&self) -> Variable

Extracts the contents of the shell variable, and returns a copy of the it.

§Safety

This method is unsafe because it does not check that the address of the shell variable is still valid.

Source

pub unsafe fn as_str(&self) -> Option<&CStr>

Returns a reference to the string contained in the shell variable. If the shell variable contains an array, returns None.

§Safety

This method is unsafe for two reasons:

  • It does not check that the address of the shell variable is still valid.
  • The CStr reference is wrapping a pointer managed by bash, so its lifetime is not guaranteed.
Source

pub unsafe fn array_items(&self) -> Vec<(i64, CString)>

Returns a vector with the items of the indexed array contained in the variable.

Each item in the vector is the index of the array and its value.

§Safety

This method is unsafe for two reasons:

  • It does not check that the address of the shell variable is still valid.
  • It does not check that the shell variable contains an indexed array.
Source

pub unsafe fn assoc_items( &self, ) -> impl Iterator<Item = (*const c_char, *const c_char)> + '_

Returns an iterator over items of the associative array contained in the shell variable.

§Safety

This method is unsafe for two reasons:

  • It does not check that the address of the shell variable is still valid.
  • It does not check that the shell variable contains an associative array.

Trait Implementations§

Source§

impl Debug for RawVariable

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