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
A default signal that can't be aborted.
A default implementation of the merge driver.
Represents an accepted local or remote deletion.
A completion op to flag a remote item as merged.
A completion op to flag a local item for upload.
A GUID for an item in a bookmark tree.
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.
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.
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
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.
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.
An abort signal is used to abort merging. Implementations of
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.
Logs a merge message.