4 ms·
Do you have any code examples of where this is used that I can look at? Like nullc my interest is in the area of types being used to enforce contracts and safe
by doublec 14y ago
Do you have any code examples of where this is used that I can look at?
Like nullc my interest is in the area of types being used to enforce contracts and safetly (hence my interest in the ATS language).
Typesafe was my initial interest in Rust and I'd love to see examples of how this is being approached in Rust as it is now.
- pcwalton 14y agoProbably the best place to look at the moment is this presentation: https://air.mozilla.org/intern-presentation-message-passing-in-rust/ https://air.mozilla.org/intern-presentation-message-passing-...
- nullc 14y agoPerhaps I missed where it was explained— but I don't see how rust enforces the type predicates (e.g. acquire vs wait state) there without typestate.
- pcwalton 14y agoSay I have a protocol that transitions from A -> B -> C. Since the pipes compiler creates the only constructor for type B, there's no way for you to construct a value of type B (in the safe language) without giving up your one value of type A. The uniqueness typing system prevents you from copying your single value of A, and you must surrender all your references to it at the time you transition to state B.