If a custom field takes up, say, 48 bits, and each bit can be arbitrarily anything, then it should be able to infallibly be converted from a [u8; 6].
But the current generated code performs a fallible try_from(u64), which would require wrangling a series of bytes into a [u8; 8], and then converted to a u64.