packages feed

keiro-dsl-0.15.0.0: test/fixtures/semantic-locality/domain/alpha.keiro

language keiro-dsl 4
context semantic-locality

mapped structural record NestedPayload {
  haskell package=semantic-locality-domain module=Example.SemanticLocality.Domain type=NestedPayload
  binding = "Example.SemanticLocality.Bindings.nestedPayloadBinding"
  binding-version = "1"
  canonical-type = "example.semantic-locality.NestedPayload.v1"
  fixtures = "Example.SemanticLocality.Bindings.nestedPayloadCases"
  wire object constructor=NestedPayload unknown-fields=reject {
    value as "value" : Text required
  }
}

mapped structural record AlphaPayload {
  haskell package=semantic-locality-domain module=Example.SemanticLocality.Domain type=AlphaPayload
  binding = "Example.SemanticLocality.Bindings.alphaPayloadBinding"
  binding-version = "1"
  canonical-type = "example.semantic-locality.AlphaPayload.v1"
  fixtures = "Example.SemanticLocality.Bindings.alphaPayloadCases"
  wire object constructor=AlphaPayload unknown-fields=reject {
    nested as "nested" : NestedPayload required
  }
}

mapped structural record SharedPayload {
  haskell package=semantic-locality-domain module=Example.SemanticLocality.Domain type=SharedPayload
  binding = "Example.SemanticLocality.Bindings.sharedPayloadBinding"
  binding-version = "1"
  canonical-type = "example.semantic-locality.SharedPayload.v1"
  fixtures = "Example.SemanticLocality.Bindings.sharedPayloadCases"
  wire object constructor=SharedPayload unknown-fields=reject {
    value as "value" : Text required
  }
}

mapped structural enum UnusedPayload {
  haskell package=semantic-locality-domain module=Example.SemanticLocality.Domain type=UnusedPayload
  binding = "Example.SemanticLocality.Bindings.unusedPayloadBinding"
  binding-version = "1"
  canonical-type = "example.semantic-locality.UnusedPayload.v1"
  fixtures = "Example.SemanticLocality.Bindings.unusedPayloadCases"
  wire string {
    Unused as "unused"
  }
}

aggregate Alpha
  regs
    accepted Bool = False
  states Ready Done!
  command SubmitAlpha { item:AlphaPayload shared:SharedPayload accepted:Bool }
  event AlphaSubmitted = fields(SubmitAlpha)
  Ready -- SubmitAlpha --> guard cmd.accepted ; write accepted := true ; emit AlphaSubmitted ; goto Done