title: How do I cast a slice of unsigned integers to signed integers of the same size?
body: <p>My best current effort is </p>
  
  <pre class="lang-rust prettyprint-override"><code>// `value` is a `&amp;[u8]`
  let v = unsafe { slice::from_raw_parts(value.as_ptr() as *const i8, value.len()) };
  </code></pre>
  
  <p>It seems overkill to need <code>unsafe</code> for this. I'd like this to be zero cost.</p>