Skip to main content

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. ObsData is intentionally not Clone: duplicating it requires a native round-trip and can fail. Use ObsData::try_clone when an independent mutable copy is needed.

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.

Source

pub fn try_clone(&self) -> Result<Self, ObsError>

Creates an independent mutable copy of this OBS data object.

This is fallible by design; the previous Clone implementation performed the same JSON round-trip but panicked when either native operation failed.

Trait Implementations§

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

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.