-
Type: Improvement
-
Resolution: Fixed
-
Priority: Minor - P4
-
Affects Version/s: None
-
Component/s: libbson
SWIFT-195 introduced a variety of methods for transforming documents: taking a prefix, suffix, subsequence, etc.
Ideally, we would implement these using bson_copy_to_excluding_nonit, to avoid having to round-trip the values we want do to keep through Swift when we put them into a new document.
However, Swift by design does not allow calling variadic C functions, as discussed in the documentation here. It does, however, support calling functions that take a va_list.
There is currently _bson_copy_to_excluding_va, but it's internal.
Access to a variant of this method that lets us use a va_list to specify the fields to exclude would make these methods introduced in SWIFT-195 far more performant.