ObsData

Struct ObsData 

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

Contains obs_data and its related strings. Note that this struct prevents string pointers from being freed by keeping them owned. Cloning ObsData is blocking and will create a new ObsData instance. Recommended is to use ObsData::full_clone() instead.

§Panics

If the underlying JSON representation can not be parsed.

Implementations§

Source§

impl ObsData

Source

pub fn new(runtime: ObsRuntime) -> Result<Self, ObsError>

Creates a new empty ObsData wrapper for the libobs obs_data data structure.

ObsData can then be populated using the set functions, which take ownership of the ObsString types to prevent them from being dropped prematurely. This makes it safer than using obs_data directly from libobs.

Source

pub fn bulk_update(&mut self) -> ObsDataUpdater

Source

pub fn from_json(json: &str, runtime: ObsRuntime) -> Result<Self, ObsError>

Source

pub fn into_immutable(self) -> ImmutableObsData

Converts this ObsData into an ImmutableObsData. Transfers the pointer without cloning.

Trait Implementations§

Source§

impl Clone for ObsData

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for ObsData

Source§

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

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

impl From<ObsData> for ImmutableObsData

Source§

fn from(data: ObsData) -> Self

Converts to this type from the input type.
Source§

impl ObsDataGetters for ObsData

Source§

fn get_string<T: Into<ObsString> + Send + Sync>( &self, key: T, ) -> Result<Option<String>, ObsError>

Source§

fn get_int<T: Into<ObsString> + Sync + Send>( &self, key: T, ) -> Result<Option<i64>, ObsError>

Source§

fn get_bool<T: Into<ObsString> + Sync + Send>( &self, key: T, ) -> Result<Option<bool>, ObsError>

Source§

fn get_double<T: Into<ObsString> + Sync + Send>( &self, key: T, ) -> Result<Option<f64>, ObsError>

Source§

fn get_json(&self) -> Result<String, ObsError>

Source§

impl ObsDataPointers for ObsData

Source§

impl ObsDataSetters for ObsData

Source§

fn set_string<T: Into<ObsString> + Send + Sync, K: Into<ObsString> + Send + Sync>( &mut self, key: T, value: K, ) -> Result<&mut Self, ObsError>

Sets a string in obs_data and stores it so it in ObsData does not get freed.
Source§

fn set_int<T: Into<ObsString> + Sync + Send>( &mut self, key: T, value: i64, ) -> Result<&mut Self, ObsError>

Sets an int in obs_data and stores the key in ObsData so it does not get freed.
Source§

fn set_bool<T: Into<ObsString> + Sync + Send>( &mut self, key: T, value: bool, ) -> Result<&mut Self, ObsError>

Sets a bool in obs_data and stores the key in ObsData so it does not get freed.
Source§

fn set_double<T: Into<ObsString> + Sync + Send>( &mut self, key: T, value: f64, ) -> Result<&mut Self, ObsError>

Sets a double in obs_data and stores the key in ObsData so it does not get freed.

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.