Closed mattmccormick closed 1 year ago
@mattmccormick Thanks for opening this pull request. Given that the spec is small, readers will probably wonder what insights writing this spec provided.
@mattmccormick Thanks for opening this pull request. Given that the spec is small, readers will probably wonder what insights writing this spec provided.
For me personally, as a newbie to TLA+, some of the things I got stuck with longer than I would have liked were:
CodeToStatus
I wanted to be able to pull out the values like interacting with a dict
in Python where I can do d.values()
. Finally, I was able to do that by using the DOMAIN which provides the keys
and then getting the set of all values corresponding to all keys in the domain.response
is initiated to [status |-> ...]
but then in Success
, response'
ends up having a body
"key". SpecificError
also modifies the primed response
to add a "key" that does not always exist. Quick question re 1) Were you aware of the CommunityModules and the Range
operator specifically? We've been considering graduating some operators/modules from the CommunityModules into TLC, and Functions.tla
seems like the most useful one.
@mattmccormick Housekeeping, feel free to re-open if you still want this contributed.
This change adds a Twirp Wire Protocol (v7) TLA+ spec. The protocol is defined at https://twitchtv.github.io/twirp/docs/spec_v7.html
I am new to TLA+ and we use Twirp at work so I thought this would be a good learning exercise for me. I'm happy to receive any feedback on how to improve the spec. If it's deemed too simple for inclusion in the Examples that's ok as well.