StableRef

Struct StableRef 

Source
pub struct StableRef {
    pub id: String,
    pub version: Option<String>,
    pub server: String,
}
Expand description

A stable reference to a document in the database.

Such a reference identifies a specific document, possibly at a specific version. The keys are prefixed with an underscore, e.g. _id instead of id, to avoid conflicts with other keys and unambiguously signal that the data occur at the database level, rather than merely the document level. The same convention is used in document databases like CouchDB and MongoDB.

Fields§

§id: String

Unique identifier of the referenced document.

When using CatColab’s official backend, this should be a document ref ID (a UUID).

§version: Option<String>

Version of the document.

If null, refers to the head commit of document. This is the case when the referenced document will receive live updates.

§server: String

Server containing the document.

Assuming one of the official deployments is used, this will be either catcolab.org or next.catcolab.org.

Trait Implementations§

Source§

impl Debug for StableRef

Source§

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

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

impl<'de> Deserialize<'de> for StableRef

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl From<StableRef> for JsValue

Source§

fn from(value: StableRef) -> Self

Converts to this type from the input type.
Source§

impl FromWasmAbi for StableRef
where Self: DeserializeOwned,

Source§

type Abi = <JsType as FromWasmAbi>::Abi

The Wasm ABI type that this converts from when coming back out from the ABI boundary.
Source§

unsafe fn from_abi(js: Self::Abi) -> Self

Recover a Self from Self::Abi. Read more
Source§

impl IntoWasmAbi for StableRef

Source§

type Abi = <JsType as IntoWasmAbi>::Abi

The Wasm ABI type that this converts into when crossing the ABI boundary.
Source§

fn into_abi(self) -> Self::Abi

Convert self into Self::Abi so that it can be sent across the wasm ABI boundary.
Source§

impl OptionFromWasmAbi for StableRef
where Self: DeserializeOwned,

Source§

fn is_none(js: &Self::Abi) -> bool

Tests whether the argument is a “none” instance. If so it will be deserialized as None, and otherwise it will be passed to FromWasmAbi.
Source§

impl OptionIntoWasmAbi for StableRef

Source§

fn none() -> Self::Abi

Returns an ABI instance indicating “none”, which JS will interpret as the None branch of this option. Read more
Source§

impl PartialEq for StableRef

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

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

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl RefFromWasmAbi for StableRef
where Self: DeserializeOwned,

Source§

type Abi = <JsType as RefFromWasmAbi>::Abi

The Wasm ABI type references to Self are recovered from.
Source§

type Anchor = SelfOwner<StableRef>

The type that holds the reference to Self for the duration of the invocation of the function that has an &Self parameter. This is required to ensure that the lifetimes don’t persist beyond one function call, and so that they remain anonymous.
Source§

unsafe fn ref_from_abi(js: Self::Abi) -> Self::Anchor

Recover a Self::Anchor from Self::Abi. Read more
Source§

impl Serialize for StableRef

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl Tsify for StableRef

Source§

const DECL: &'static str = "/**\n * A stable reference to a document in the database.\n *\n * Such a reference identifies a specific document, possibly at a specific\n * version. The keys are prefixed with an underscore, e.g. `_id` instead of\n * `id`, to avoid conflicts with other keys and unambiguously signal that the\n * data occur at the *database* level, rather than merely the *document* level.\n * The same convention is used in document databases like CouchDB and MongoDB.\n */\nexport interface StableRef {\n /**\n * Unique identifier of the referenced document.\n *\n * When using CatColab\\\'s official backend, this should be a document ref ID\n * (a UUID).\n */\n _id: string;\n /**\n * Version of the document.\n *\n * If null, refers to the head commit of document. This is the case when\n * the referenced document will receive live updates.\n */\n _version: string | null;\n /**\n * Server containing the document.\n *\n * Assuming one of the official deployments is used, this will be either\n * `catcolab.org` or `next.catcolab.org`.\n */\n _server: string;\n}"

Source§

const SERIALIZATION_CONFIG: SerializationConfig

Source§

type JsType = JsType

§

fn into_js(&self) -> Result<Self::JsType, Error>
where Self: Serialize,

§

fn from_js<T>(js: T) -> Result<Self, Error>
where T: Into<JsValue>, Self: DeserializeOwned,

Source§

impl VectorFromWasmAbi for StableRef
where Self: DeserializeOwned,

Source§

type Abi = <JsType as VectorFromWasmAbi>::Abi

Source§

unsafe fn vector_from_abi(js: Self::Abi) -> Box<[Self]>

Source§

impl VectorIntoWasmAbi for StableRef

Source§

type Abi = <JsType as VectorIntoWasmAbi>::Abi

Source§

fn vector_into_abi(vector: Box<[Self]>) -> Self::Abi

Source§

impl WasmDescribe for StableRef

Source§

impl WasmDescribeVector for StableRef

Source§

impl Eq for StableRef

Source§

impl StructuralPartialEq for StableRef

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> ReturnWasmAbi for T
where T: IntoWasmAbi,

Source§

type Abi = <T as IntoWasmAbi>::Abi

Same as IntoWasmAbi::Abi
Source§

fn return_abi(self) -> <T as ReturnWasmAbi>::Abi

Same as IntoWasmAbi::into_abi, except that it may throw and never return in the case of Err.
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.
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,