Struct PersonRecords
pub struct PersonRecords { /* private fields */ }Expand description
Where one app keeps the person’s records on this device. Cloning shares the open records.
Implementations§
§impl PersonRecords
impl PersonRecords
pub fn open(
owners: &mut RecordOwners,
package_id: &str,
author: UserId,
) -> Result<PersonRecords, RecordOpenError>
pub fn open( owners: &mut RecordOwners, package_id: &str, author: UserId, ) -> Result<PersonRecords, RecordOpenError>
pub fn replica(
package_id: &str,
author: UserId,
) -> Result<PersonRecords, RecordOpenError>
pub fn replica( package_id: &str, author: UserId, ) -> Result<PersonRecords, RecordOpenError>
Records that store nothing on this device, for a window whose app already holds the stored ones elsewhere (the same app open in another room): they converge with that window over the record’s route.
§Errors
Rejects an invalid package.
pub fn of_package(
&self,
package_id: &str,
) -> Result<PersonRecords, RecordOpenError>
pub fn of_package( &self, package_id: &str, ) -> Result<PersonRecords, RecordOpenError>
The person’s records package_id keeps, held in this app’s store
beside its own. In one host, these use the original profile-scoped
owner registry; another mounted app never opens a second writer or
empty fallback replica for the same record. Separate hosts/devices
still converge over the record’s route. Sharing an owner adds no
editor permission; the framework enforces the resource’s editor list.
§Errors
Rejects an invalid package.
pub fn flush(&self) -> Result<(), String>
pub fn flush(&self) -> Result<(), String>
Write out what is not stored yet, as closing the window does.
§Errors
The records’ writer reports a storage failure.
The person these records belong to.
pub fn room(&self) -> Option<Uuid>
pub fn room(&self) -> Option<Uuid>
The person’s room, when they have one: the records sync to their other devices only then.
pub fn open_record(
&self,
kind: RecordKind,
initialize: &dyn Fn(&mut AutoCommit) -> Result<(), String>,
) -> Result<PersonRecord, RecordOpenError>
pub fn open_record( &self, kind: RecordKind, initialize: &dyn Fn(&mut AutoCommit) -> Result<(), String>, ) -> Result<PersonRecord, RecordOpenError>
Open the person’s record of kind, created with initialize — its
genesis, the same change on every device — when nothing holds it yet.
When another window of the app keeps it, this window opens a replica
that stores nothing and follows that window’s.
§Errors
The record could not be read, created or replicated.
pub fn open_existing_record(
&self,
kind: RecordKind,
) -> Result<Option<PersonRecord>, RecordOpenError>
pub fn open_existing_record( &self, kind: RecordKind, ) -> Result<Option<PersonRecord>, RecordOpenError>
The person’s record of kind when it exists, without creating it:
what a reader opens, leaving creation to the first write
(Self::open_record).
§Errors
The record could not be read or replicated.
pub fn open_original_record(
&self,
kind: RecordKind,
initialize: impl Fn(&mut AutoCommit) -> Result<(), String>,
) -> Result<PersonRecord, RecordOpenError>
pub fn open_original_record( &self, kind: RecordKind, initialize: impl Fn(&mut AutoCommit) -> Result<(), String>, ) -> Result<PersonRecord, RecordOpenError>
Open the original writer for a host-owned canonical edit. Unlike the readable replica path, this must observe and edit the actual owner: a busy/missing writer is never replaced by an empty local replica.
§Errors
Refuses a replica owner and propagates the original writer’s errors.
Trait Implementations§
§impl Clone for PersonRecords
impl Clone for PersonRecords
§fn clone(&self) -> PersonRecords
fn clone(&self) -> PersonRecords
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for PersonRecords
impl !RefUnwindSafe for PersonRecords
impl !Send for PersonRecords
impl !Sync for PersonRecords
impl Unpin for PersonRecords
impl UnsafeUnpin for PersonRecords
impl !UnwindSafe for PersonRecords
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more