The [Bits](core::bits::Bits) type is a `Copy` enabled type that you can construct from integers, from the `Default` trait, or from other `Bits`. Mostly, it is meant to stay out of your way and behave like a `u32`. ``` # use rust_hdl::prelude::*; let x: Bits<50> = Default::default(); ``` This will construct a length 50 bit vector that is initialized to all `0`. You can also convert from literals into bit vectors using the [From] and [Into] traits, provided the literals are of the `u64` type. ``` # use rust_hdl::prelude::*; let x: Bits<50> = 0xBEEF.into(); ``` In some cases, Rust complains about literals, and you may need to provide a suffix: ``` # use rust_hdl::prelude::*; let x: Bits<50> = 0xDEAD_BEEF_u64.into(); ``` However, in most cases, you can leave literals suffix-free, and Rust will automatically determine the type from the context. You can construct a larger constant using the [bits] function. If you have a literal of up to 128 bits, it provides a functional form ``` # use rust_hdl::prelude::*; let x: Bits<200> = bits(0xDEAD_BEEE); // Works for up to 128 bit constants. ``` There is also the [ToBits] trait, which is implemented on the basic unsigned integer types. This trait allows you to handily convert from different integer values ``` # use rust_hdl::prelude::*; let x: Bits<10> = 32_u8.to_bits(); ```