binaryninja-api
binaryninja-api copied to clipboard
impl rust Collaboration and Remote API
Unimplemented and other notes:
BNRemoteFileDownload- Returns the c++std::vectorfrom the core API, but don't provide any way to free it.BNCollaborationSnapshotDownloadSnapshotFile- Returns the c++std::vectorfrom 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.
It's probably better to leave Result<T, ()> for now, because it's very likely that an Error type will be implemented and it will be replaced byResult<T, BnError> .
Although it's not ideal, it's the current API behavior: https://github.com/Vector35/binaryninja-api/blob/04b58f9cbcc4c4f6bb75ddb13225c2dcfb3d989e/rust/src/metadata.rs#L284
This PR was merged with the rust refactor, https://github.com/Vector35/binaryninja-api/commit/6a63c17853009ce7a0071458e39c140a09440230. Thank you @rbran!