Previously the v0.10-pre release series has attempted to make ObjectIdentifier generic around a backing buffer containing the BER encoding and bounded on AsRef<[u8]>.
This approach has a drawback though: we can't use derived PartialEq/Eq, which means it isn't possible to use in match expressions anymore, an ergonomics drawback noted in #1293, with the implementation reverted in #1299.
An alternative way to go for what it was trying to implement: an ObjectIdentifierRef backed by a &[u8] is to use a separate struct. With that approach, there could be overlapping PartialEq/Eq impls that would allow the two to be compared.
As a start towards going that route, this gets rid of the generic backing buffer and opts instead to make the struct const generic around its size with a default.
Previously the v0.10-pre release series has attempted to make
ObjectIdentifier
generic around a backing buffer containing the BER encoding and bounded onAsRef<[u8]>
.This approach has a drawback though: we can't use derived
PartialEq
/Eq
, which means it isn't possible to use inmatch
expressions anymore, an ergonomics drawback noted in #1293, with the implementation reverted in #1299.An alternative way to go for what it was trying to implement: an
ObjectIdentifierRef
backed by a&[u8]
is to use a separate struct. With that approach, there could be overlappingPartialEq
/Eq
impls that would allow the two to be compared.As a start towards going that route, this gets rid of the generic backing buffer and opts instead to make the struct const generic around its size with a default.