I don't see how that would work.
d[0..4].try_into()
The type of the result is something like: Result<[u8; 4], TryFromSliceError>
How do I convert that into Result<[u8; 4], Infallible>
As far as I can tell, Infallible is there because you're implementing a trait which returns an error, but you don't have an error to return at all.