racket/collects/meta/drdr/status.rkt
2011-06-28 02:01:41 -04:00

33 lines
1.0 KiB
Racket

#lang racket
(define-struct event () #:prefab)
(define-struct (stdout event) (bytes) #:prefab)
(define-struct (stderr event) (bytes) #:prefab)
(define-struct status (start end command-line output-log) #:prefab)
(define-struct (timeout status) () #:prefab)
(define-struct (exit status) (code) #:prefab)
(define (status-duration s)
(- (status-end s) (status-start s)))
(provide/contract
[struct event ()]
[struct (stdout event) ([bytes bytes?])]
[struct (stderr event) ([bytes bytes?])]
[struct status ([start number?]
[end number?]
[command-line (listof string?)]
[output-log (listof event?)])]
[struct (exit status)
([start number?]
[end number?]
[command-line (listof string?)]
[output-log (listof event?)]
[code exact-integer?])]
[struct (timeout status)
([start number?]
[end number?]
[command-line (listof string?)]
[output-log (listof event?)])]
[status-duration (status? . -> . number?)])