diff options
Diffstat (limited to 'worker/swift/models.go')
| -rw-r--r-- | worker/swift/models.go | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/worker/swift/models.go b/worker/swift/models.go new file mode 100644 index 0000000..4a318d0 --- /dev/null +++ b/worker/swift/models.go @@ -0,0 +1,86 @@ +package main + +import ( + "errors" + "time" +) + +const ( + resultSuccess = "success" + resultCompileError = "compile_error" + resultRuntimeError = "runtime_error" + resultTimeout = "timeout" + resultInternalError = "internal_error" +) + +var ( + errInvalidMaxDuration = errors.New("'max_duration_ms' must be positive") +) + +type swiftCompileRequestData struct { + MaxDurationMilliseconds int `json:"max_duration_ms"` + Code string `json:"code"` + CodeHash string `json:"code_hash"` +} + +func (req *swiftCompileRequestData) maxDuration() time.Duration { + return time.Duration(req.MaxDurationMilliseconds) * time.Millisecond +} + +func (req *swiftCompileRequestData) validate() error { + if req.MaxDurationMilliseconds <= 0 { + return errInvalidMaxDuration + } + return nil +} + +type swiftCompileResponseData struct { + Status string `json:"status"` + Stdout string `json:"stdout"` + Stderr string `json:"stderr"` +} + +type wasmCompileRequestData struct { + MaxDurationMilliseconds int `json:"max_duration_ms"` + CodeHash string `json:"code_hash"` +} + +type wasmCompileResponseData struct { + Status string `json:"status"` + Stdout string `json:"stdout"` + Stderr string `json:"stderr"` +} + +func (req *wasmCompileRequestData) maxDuration() time.Duration { + return time.Duration(req.MaxDurationMilliseconds) * time.Millisecond +} + +func (req *wasmCompileRequestData) validate() error { + if req.MaxDurationMilliseconds <= 0 { + return errInvalidMaxDuration + } + return nil +} + +type testRunRequestData struct { + MaxDurationMilliseconds int `json:"max_duration_ms"` + CodeHash string `json:"code_hash"` + Stdin string `json:"stdin"` +} + +func (req *testRunRequestData) maxDuration() time.Duration { + return time.Duration(req.MaxDurationMilliseconds) * time.Millisecond +} + +func (req *testRunRequestData) validate() error { + if req.MaxDurationMilliseconds <= 0 { + return errInvalidMaxDuration + } + return nil +} + +type testRunResponseData struct { + Status string `json:"status"` + Stdout string `json:"stdout"` + Stderr string `json:"stderr"` +} |
