You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: main_demo.rs
    path of file: ./repos/staticvec/demo
    
    the code of the file until where you have to start completion: // So we don't get "function complexity" lints and such since it's a demo.
#![allow(clippy::all)]
// So we don't get warned about intentionally calling `drain_filter()` on a const struct, or warned
// about incomplete features.
#![allow(const_item_mutation, incomplete_features)]
// To be clear, as a "regular end user" of this crate, you will not necessarily need all or even any
// of the above or below flags to be specified in your own code unless you're also going out of your
// way to basically do everything that can conceivably be done with a StaticVec within the context
// of a single program.
#![feature(
  const_convert,
  const_fn_floating_point_arithmetic,
  const_mut_refs,
  const_precise_live_drops,
  // Weirdly named feature, as it doesn't necessaril
    
const fn build<T: Copy, const N: usize>(x: [T; N]) -> StaticVec<T, N> {
  let mut sv = StaticVec::new();
  // `StaticVec::push` is a `const fn`. Note that loops in `const fn` are limited to `while`
  // currently: if that changes, obviously use an iterator-based `for` loop instead.
  let mut i = 0;
  while i < N {
    sv.push(x[i]);
    i += 1;
  }
  // `StaticVec::pop` is also a `const fn`, so we can do this as well...
  while sv.pop().is_some() {}
  // And put everything back in like this... (note that the `Copy` bounds specifically on
  // `insert_from_slice` are the only thing we use here that actually make the `Copy` bounds on the
  // `build` function itself necessary).
  sv.insert_from_slice(0, &x);
  // And finally return the StaticVec like this.
  sv
  // The methods demonstrated above are by no means the only ones for StaticVec that could be used
  // (and might be useful) in a context like this, so do go ahead and peruse the docs for this crate
  // to find out more.
}