<p dir="auto">This module looks vaguelly like</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="pub mod os {
  pub mod consts {
    ... various reexports ...

    pub mod android { ... }
    pub mod linux { .... }
  }
}"><pre class="notranslate"><code class="notranslate">pub mod os {
  pub mod consts {
    ... various reexports ...

    pub mod android { ... }
    pub mod linux { .... }
  }
}
</code></pre></div>
<p dir="auto">All constants for all platforms are available to all platforms. There is no bound to the number of public modules that must be added here over time, and doubtless different implementations of Rust must support different platforms. In other words, as designed this module will never stop changing. This is a mess waiting to happen. I suggest only exposing the current arch and moving any necessary cross-arch capability into rustc directly. Nominating.</p>
<p dir="auto">Range has a type bound on ToPrimitive so that it can have a size_hint. It does not need this to function, and the size_hint is just an optional nicety.</p>
<p dir="auto">It'd be nice if there were some way to express this with the type system; this "optional" type bound makes the interface less generic (though it's not that big of a deal).</p>