-
Notifications
You must be signed in to change notification settings - Fork 217
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
impl rust Collaboration and Remote API #5773
base: dev
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I got through 18 before I realized how large this PR is.
For actual failures like merge_database
a Result
type would be nice, however in the absence of an actual error type it is a code smell. If you added just a simple MergeFailed
type and attached it I think that would be better. This is pretty subjective so I'm sure others will have differing opinions.
It's probably better to leave Although it's not ideal, it's the current API behavior: binaryninja-api/rust/src/metadata.rs Line 284 in 04b58f9
|
Unimplemented and other notes:
BNRemoteFileDownload
- Returns the c++std::vector
from the core API, but don't provide any way to free it.BNCollaborationSnapshotDownloadSnapshotFile
- Returns the c++std::vector
from the core API, but don't provide any way to free it.BNRemoteRequest
- Parameters are complex c++ types, and no direct way to manage it.BNAnalysisMergeConflictGetPathItem
- Implementation with downcast to u64 is unclear.Remote::connect
- Not fully implemented because it depends on enterprise and SecretsProvider.Remote
- Methods in python preemptively callspull_files
/pull_folders
/pull_user_permissions
/open
, but C++ don't. Python was followed.RemoteProject::upload_new_file
- Was ported fromremotebrowser.cpp
, this file is not public, so I decided not to implement it.