Aliasing

La instrucción type puede usarse para dar un nuevo nombre a un tipo existente. Los tipos deben tener nombres UpperCamelCase, o el compilador generará una advertencia. La excepción a esta regla son los tipos elementales: usize, f32, etc.

// `NanoSegundo` es un nuevo nombre para `u64`.
type NanoSegundo = u64;
type Pulgada = u64;

// Utiliza un atributo para silenciar la advertencia.
#[allow(non_camel_case_types)]
type u64_t = u64;
// TODO ^ Intenta eliminar el atributo

fn main() {
    // `NanoSegundo` = `Pulgada` = `u64_t` = `u64`.
    let nanosegundos: NanoSegundo = 5 as u64_t;
    let pulgadas: Pulgada = 2 as u64_t;

    // Ten en cuenta que los alias de tipo *no* proporcionan ninguna seguridad
    // de tipo adicional, porque los alias *no* son tipos nuevos
    println!("{} nanosegundos + {} pulgadas = {} unidad?",
             nanosegundos,
             pulgadas,
             nanosegundos + pulgadas);
}

El uso principal de los alias es reducir el texto repetitivo; por ejemplo, el tipo IoResult <T> es un alias para el tipo Result <T, IoError>.