-
Notifications
You must be signed in to change notification settings - Fork 0
Typestate
Joel Alvarez edited this page Jul 12, 2026
·
1 revision
Typestate usa el sistema de tipos para representar estados válidos de un flujo.
Un valor cambia de tipo conforme avanza por un proceso. Cada estado expone solo las operaciones válidas para ese punto.
En Rust suele aparecer como:
- Structs genéricas con un parámetro de estado.
- Tipos marcadores como
MissingUrl,PaidoAuthenticated. -
PhantomDatacuando el estado vive en el tipo, pero no en los datos. - Métodos que consumen
selfpara producir el siguiente estado.
- Request builder que no permite enviar sin URL:
src/patterns/rust_idiomatic/typestate/request_builder.rs - Orden que solo puede enviarse después de pagarse:
src/patterns/rust_idiomatic/typestate/paid_order.rs - Conexión que solo ejecuta consultas después de autenticarse:
src/patterns/rust_idiomatic/typestate/authenticated_connection.rs
La guía cercana al código vive en:
patterns/rust_idiomatic/typestate/README.md