Add -DNDEBUG=1 back in.
Addressed review comments.
Updated changelog. Fixed additional options.
Had to go back to THREADSAFE=1 since the SQLCipher configure script overwrites it.
* Define conversions to/from protobuf types
* Define bookmark message types
* Add method of getting 'shallow' tree info
* Properly provide parent/position for items
* Add the rust side of the Bookmarks FFI
* Kotlin bookmarks FFI
* Copy xcode project over from logins to start places ios ffi
* places ios: C bindings for places
* protobuf setup for places ios (and docs)
* Fix some things that were annoying me about BookmarkRootGuid, and move it to it's own file
* Add a bookmarks FFI function to return all bookmarks with the requested URL
* Clean up leftover logins stuff in places ios
* Implement swift bookmarks API
* Fix bad comment and missing null check in kotlin bookmarks
* Try and add places to the iOS megazord (hit issue with msg_types name collision)
* Rename msg_types to be unique, finish integration with iOS megazord
* Finish documenting how to pass protobuf data back and forth for swift
* Comment tweak and change canEdit -> isRoot
* Small tweaks to the swift API (some renaming, change class => struct, etc)
* Don't require type in update (since it can't be changed), and handle errors better
* Undo struct -> class change since it subtly broke things
* Respond to feedback from justin
* Allow requesting a only the first level of folder children
* connUseAfterApiClosed -> connUseAfterAPIClosed
* WIP iOS tests
* Make iOS tests build
* Improve path handling for iOS
* Fix megazord test setup and document the weird testing steps that were needed
* Fix failing iOS tests
* Move protobuf-returning functions into their own file
* Add searchBookmarks function
* Use a sealed class and data classes in the kotlin API
* Require that callers of getBookmarksTree pass in the root and whether or not to fetch recursively, rather than using the most expensive possible default
* rename deleteBookmark => deleteBookmarkNode
* Use InterruptScope in the reader bookmark methods
* Fix rebase issue
* Allow interrupt() on iOS
* Use changes from #788 to make places xcode project build much faster
* Change `extern` to `public`, use fewer protobuf types in the rust because they make testing it painful
* More tests of new rust code
* Expose relevant errors over the FFI, and document them (also, fix the kotlin doc formatting)
* fix 'its' being wrong basically everywhere
* Fix many doc typos
* Use FfiStr in bookmarks
* Fix doc nit
* Make missing titles come through as '' for better API consistency
* Tests for the rest of the new rust functions
* Clarify doc nit
* Changelog entry for bookmark ffi
* Expose runMaintenance to Swift
* Handle NoItem => NoSuchGuid
* Rename places::storage::bookmarks::public to places::storage::bookmarks::public_node
* Lina's review feedback
* This is a proof-of-concept for how we might manage connections.
It is currently in a good enough state to see if the idea is worth pursuing.
At a minimum, and before landing, we'd:
* split the schema.rs changes into its own PR - they aren't strictly needed
for what this patch does.
* Probably move PlacesAPI into its own source file, and better consider
threading considerations - the PlacesAPI instance will end up being called
from multiple threads (although the stuff we hand out shouldn't be)
* Manage the "sync" connection similarly to how we manage the "write"
connection. The PlacesAPI object is probably also where the sync "store"
objects can live (as currently we create brand new stores each sync, which
isn't as optimized as it should be)
* FFI changes needed to support this - this would be a breaking change, but
shouldn't be too difficult to manage.
* Lots of other cleanup - I figured I'd get comments on the general approach
before spending much time cleaning things up.
So by all means, offer all suggestions, but the main thing I'd like from this
is general approval that we should go ahead with this.
* Flesh out the Api more, including the Kotlin side of the fence
* First cut at Thom's feedback
* Fix nit: IOError => IoError
* Return writer connection to API when finished with it, ensure there's only one in kotlin
* Avoid duplication of rustCall
* Detect closing a connection on a different API than the one that opened it.
* Tests for PlacesApi::close_connection
* Fix busted benchmarks
* Address review feedback
* Changelog entry for connection types refactor
* Document thread-safety of places API
The website now publishes only consmer-facing documentation
found in ./docs/product-portal/. The rest of the ./docs/ folder
can be for internal contributor documentation such as how-to guides.