Struct LoadOptions
pub struct LoadOptions<'a> { /* private fields */ }Implementations§
§impl<'a> LoadOptions<'a>
impl<'a> LoadOptions<'a>
pub fn new() -> LoadOptions<'static>
pub fn on_partial_load(self, on_partial_load: OnPartialLoad) -> LoadOptions<'a>
pub fn on_partial_load(self, on_partial_load: OnPartialLoad) -> LoadOptions<'a>
What to do when loading a document partially succeeds
The default is OnPartialLoad::Error
pub fn verification_mode(
self,
verification_mode: VerificationMode,
) -> LoadOptions<'a>
pub fn verification_mode( self, verification_mode: VerificationMode, ) -> LoadOptions<'a>
Whether to verify the head hashes after loading
The default is VerificationMode::Check
pub fn patch_log(self, patch_log: &'a mut PatchLog) -> LoadOptions<'a>
pub fn patch_log(self, patch_log: &'a mut PatchLog) -> LoadOptions<'a>
A PatchLog to log the changes required to materialize the current state of the
The default is to not log patches
pub fn migrate_strings(self, migration: StringMigration) -> LoadOptions<'a>
pub fn migrate_strings(self, migration: StringMigration) -> LoadOptions<'a>
Whether to convert ScalarValue::Strs in the loaded document to ObjType::Text
Until version 2.1.0 of the javascript library strings (as in, the native string of the JS
runtime) were represented in the document as ScalarValue::Str and there was a special
JS class called Text which users were expected to use for ObjType::Text. In 2.1.0
we changed this so that native strings were represented as ObjType::Text and
ScalarValue::Str was represented as a special RawString class. This means
that upgrading the application code to use the new API would require either
a) Maintaining two code paths in the application to deal with both string and RawString
types
b) Writing a migration script to convert all RawString types to string
The latter is logic which is the same for all applications so we implement it in the
library for convenience. The way this works is that after loading the document we iterate
through all visible ScalarValue::Str values and emit a change which creates a new
ObjType::Text at the same path with the same content.
pub fn text_encoding(self, text_encoding: TextEncoding) -> LoadOptions<'a>
pub fn known_change_hashes(self, hashes: &'a [ChangeHash]) -> LoadOptions<'a>
pub fn known_change_hashes(self, hashes: &'a [ChangeHash]) -> LoadOptions<'a>
Tilo patch (TILO-PATCH.md): the hash of every change in the
document chunk the data starts with, in the order
Automerge::change_hashes listed them for the document that saved
it. Loading then takes them instead of rebuilding and hashing every
change, which is most of the cost of loading a large document.
Pass only hashes this program listed itself for exactly these bytes (keyed by a digest of them): they are not checked against the changes, only for being one per change, distinct, and having the document’s heads as the changes nothing depends on. Hashes that fail that are ignored and the changes rebuilt as usual.
Trait Implementations§
§impl<'a> Debug for LoadOptions<'a>
impl<'a> Debug for LoadOptions<'a>
§impl Default for LoadOptions<'static>
impl Default for LoadOptions<'static>
§fn default() -> LoadOptions<'static>
fn default() -> LoadOptions<'static>
Auto Trait Implementations§
impl<'a> Freeze for LoadOptions<'a>
impl<'a> RefUnwindSafe for LoadOptions<'a>
impl<'a> Send for LoadOptions<'a>
impl<'a> Sync for LoadOptions<'a>
impl<'a> Unpin for LoadOptions<'a>
impl<'a> UnsafeUnpin for LoadOptions<'a>
impl<'a> !UnwindSafe for LoadOptions<'a>
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
§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> DowncastSync for T
impl<T> DowncastSync for T
§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