Add /comments
related errors and their integration tests
#452
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Follows established patterns to implement error types for
/comments
and their integration tests. It also introducesCommentCreateParamsBuilder
type to make it easier to build aCommentCreateParams
type in Rust.There is some discussion and pre-RFCs for using something like the
..Default::default()
syntax for all the remaining fields when the type itself doesn't implementDefault
, but the remaining fields do. If such a feature is ever implemented, we could drop these builders.There are also proc macro crates that implement these, but the ones I tried before didn't work out the way I'd like. For example, most
build
functions will return aResult<T, E>
, but that only makes sense when the build might fail. In this builder type, I make the mandatory fields for the params type also mandatory for the builder, so we don't require any error handling.In any case, I think this setup will serve us well on the Rust side for now. In native wrappers, this problem doesn't exist because we can use the
#[uniffi(default = None)]
macro attribute and both Kotlin and Swift can take arbitrary number of arguments in their constructor.