pub struct FuncCodeWriter<E: Endianness, CW: CodesWrite<E> + ?Sized>(/* private fields */);Expand description
A newtype containing a function pointer dispatching the write method for a code.
This is a more efficient way to pass a StaticCodeWrite to a method, as
a FuncCodeWriter does not need to do a runtime test to dispatch the
correct code.
Instances can be obtained by calling the new method
with a variant of the Codes enum, or by calling the
new_with_func method with a function
pointer.
Note that since selection of the code happens in the
new method, it is more efficient to clone a
FuncCodeWriter than to create a new one.
Implementations§
Source§impl<E: Endianness, CW: CodesWrite<E> + ?Sized> FuncCodeWriter<E, CW>
impl<E: Endianness, CW: CodesWrite<E> + ?Sized> FuncCodeWriter<E, CW>
Sourcepub const fn new(code: Codes) -> Result<Self, DispatchError>
pub const fn new(code: Codes) -> Result<Self, DispatchError>
Returns a new FuncCodeWriter for the given code.
The code is canonicalized before the lookup, so equivalent codes yield the same writer.
§Errors
The method will return an error if there is no constant
for the given code in FuncCodeWriter.
Sourcepub const fn new_with_func(
write_func: fn(&mut CW, u64) -> Result<usize, <CW as BitWrite<E>>::Error>,
) -> Self
pub const fn new_with_func( write_func: fn(&mut CW, u64) -> Result<usize, <CW as BitWrite<E>>::Error>, ) -> Self
Returns a new FuncCodeWriter for the given function.