Skip to content

Newtype

Joel Alvarez edited this page Jul 12, 2026 · 1 revision

Newtype

Newtype crea tipos pequeños alrededor de valores existentes para darles significado de dominio.

Idea central

Un valor como String, u64 o i64 puede representar muchas cosas. Newtype crea un tipo distinto para que el compilador ayude a evitar mezclas accidentales.

En Rust suele aparecer como:

  • Tupla structs como UserId(String).
  • Constructores que validan antes de crear el valor.
  • Métodos de acceso controlados.
  • Traits como Display, Eq, Hash, Clone y Copy cuando hacen sentido.

Ejemplos del repositorio

  • IDs tipados para usuario, orden y producto: src/patterns/rust_idiomatic/newtype/typed_ids.rs
  • Dinero y moneda sin mezclar unidades: src/patterns/rust_idiomatic/newtype/money_currency.rs
  • Tipos seguros para email y token: src/patterns/rust_idiomatic/newtype/safe_email_token.rs

Guía técnica

La guía cercana al código vive en:

patterns/rust_idiomatic/newtype/README.md

Clone this wiki locally