This PR introduces a new Merge trait that simplifies the usage of the library in some way. It is now possible to return any type that implements AsRef<[u8]> reducing the amount of allocation required to return a merged value (i.e. returning an
u32::to_be_bytes()).
Unfortunately, I wasn't able to implement this trait on the Fn(&[u8], values) trait, making it impossible to use a simple function as the merge function.
Another downside of this trait is the impossibility to return a value that comes from the provided values to merge, that can be a performance issue for merge functions like keep_first/last.
This PR introduces a new
Merge
trait that simplifies the usage of the library in some way. It is now possible to return any type that implementsAsRef<[u8]>
reducing the amount of allocation required to return a merged value (i.e. returning anu32::to_be_bytes()
).Unfortunately, I wasn't able to implement this trait on the
Fn(&[u8], values)
trait, making it impossible to use a simple function as the merge function.Another downside of this trait is the impossibility to return a value that comes from the provided values to merge, that can be a performance issue for merge functions like
keep_first/last
.