pub unsafe trait Format {
    fn validate(buf: &[u8]) -> bool;

    fn validate_prefix(buf: &[u8]) -> bool { ... }
    fn validate_suffix(buf: &[u8]) -> bool { ... }
    fn validate_subseq(buf: &[u8]) -> bool { ... }
    unsafe fn fixup(_lhs: &[u8], _rhs: &[u8]) -> Fixup { ... }
}
Expand description

Trait for format marker types.

The type implementing this trait is usually not instantiated. It’s used with a phantom type parameter of Tendril.

Required methods

Check whether the buffer is valid for this format.

Provided methods

Check whether the buffer is valid for this format.

You may assume the buffer is a prefix of a valid buffer.

Check whether the buffer is valid for this format.

You may assume the buffer is a suffix of a valid buffer.

Check whether the buffer is valid for this format.

You may assume the buffer is a contiguous subsequence of a valid buffer, but not necessarily a prefix or a suffix.

Compute any fixup needed when concatenating buffers.

The default is to do nothing.

The function is unsafe because it may assume the input buffers are already valid for the format. Also, no bounds-checking is performed on the return value!

Implementors