pub struct Changeset {
pub device_id: String,
pub device_name: String,
pub ack: Option<Vec<PeerCursor>>,
pub rows: Vec<RowChange>,
pub tombstones: Vec<Tombstone>,
pub files: Vec<FileChange>,
pub generated_at: String,
}Expand description
One device’s export, possibly carrying an ack for the device it was sent to. Serde JSON over the wire (or inside a zip bundle with blobs).
Fields§
§device_id: StringThe sender (from device_meta, created on first sync).
device_name: String“laptop” — for the receiver’s log/status.
ack: Option<Vec<PeerCursor>>“I imported up to here” — the sender’s reply acks the receiver’s data, so entries are addressed by the receiver’s device id.
rows: Vec<RowChange>Full rows as JSON objects keyed by column name.
tombstones: Vec<Tombstone>Deletes that actually happened on the sender.
files: Vec<FileChange>File metadata — the blobs themselves follow via the transport’s
blob channel (blobs/<space_id>/<name> plus the content-addressed
blobs/by-hash/<hash> path under a sync dir or inside a zip bundle).
generated_at: StringTrait Implementations§
Source§impl<'de> Deserialize<'de> for Changeset
impl<'de> Deserialize<'de> for Changeset
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
impl StructuralPartialEq for Changeset
Auto Trait Implementations§
impl Freeze for Changeset
impl RefUnwindSafe for Changeset
impl Send for Changeset
impl Sync for Changeset
impl Unpin for Changeset
impl UnsafeUnpin for Changeset
impl UnwindSafe for Changeset
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
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.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.