Please don't transmute pointer-like types. Transmutation of indirection is almost always wrong. It's not transitive: if transmute::<T, U>(t) is valid, it doesn't mean that transmute::<&T, &U>(&t) is also valid (nor the other way around).
There's also the actual/bigger problem here: initialization. slice points to uninitialized bytes, but creating a mutable reference to a type means that the value must be initialized. A &mut [u8] is not write-only, it can also be read from, and it absolutely requires that the byte range it's pointing to is initialized. By lying to the compiler via the transmute, you are causing insta-UB.