Macros

Structs

A completion op to update the parent and position of a local item.

A completion op to insert a new remote item into the local tree, or apply synced changes to an existing item.

A tree builder builds a bookmark tree structure from a flat list of items and parent-child associations.

A completion op to change the local GUID to the merged GUID. This is used to dedupe new local items to remote ones, as well as to fix up invalid GUIDs.

Completion operations to apply to the local tree after a merge. These are represented as separate structs in Vecs instead of enums yielded from an iterator so that consumers can easily chunk them.

A default signal that can’t be aborted.

A default implementation of the merge driver.

A completion op to delete an item from the local tree.

A completion op to delete a local tombstone.

A GUID for an item in a bookmark tree.

A completion op to store a tombstone for a remote item.

An item in a local or remote bookmark tree.

Adds an item with content and structure to a tree builder.

A merged bookmark node that indicates which side to prefer, and holds merged child nodes.

The root of a merged tree, from which all merged nodes descend.

A two-way merger that produces a complete merged tree from a complete local tree and a complete remote tree with changes since the last sync.

A node in a bookmark tree that knows its parent and children, and dereferences to its item.

Adds structure for an existing item to a tree builder.

Records total problem counts for telemetry. An item can have multiple problems, but each problem is only counted once per item.

A printable summary of a problem for an item.

Records problems for all items in a tree.

A completion op to skip uploading a local item after resolving merge conflicts.

A completion op to flag a local item for upload.

A completion op to flag a remote item as merged.

Records structure change counters for telemetry.

A complete, rooted bookmark tree with tombstones.

Records the time taken to build a local or remote tree, number of items in the tree, and structure problem counts.

A completion op to upload or reupload a merged item.

A completion op to upload a tombstone.

Enums

Content info for an item in the local or remote tree. This is used to dedupe new local items to remote items that don’t exist locally, with different GUIDs and similar content.

Describes where an invalid parent comes from.

Describes an invalid parentid.

Synced item kinds. Each corresponds to a Sync record type.

The merge state indicates which side we should prefer, local or remote, when resolving conflicts.

Describes a structure divergence for an item in a bookmark tree. These are used for logging and validation telemetry.

A merge telemetry event.

Synced item validity.

Constants

The bookmarks menu GUID.

The mobile bookmarks GUID.

The Places root GUID, used to root all items in a bookmark tree.

The tags root GUID.

The bookmarks toolbar GUID.

The “Other Bookmarks” GUID, used to hold items without a parent.

Traits

An abort signal is used to abort merging. Implementations of AbortSignal can store an aborted flag, usually as an atomic integer or Boolean, set the flag on abort, and have AbortSignal::aborted return the flag’s value.

A merge driver provides methods to customize merging behavior.

Indicates if the GUID is valid. Implemented for byte slices and GUIDs.

A store is the main interface to Dogear. It implements methods for building local and remote trees from a storage backend, fetching content info for matching items with similar contents, and persisting the merged tree.

Functions

Logs a merge message.

Type Definitions