[Racket] Ferti hydroponic nutrient solver, redux.
Add nutrient-measurement internal contract.
models/nutrient-measurement.rkt
@@ -11,12 +11,11 @@
11
11
(case-> (-> nutrient-measurement? nutrient-measurement?)
12
12
(-> string? nutrient-value-hash/c nutrient-measurement?))]
13
13
[get-nutrient-measurements (-> (listof nutrient-measurement?))]
14
Removed:
[get-nutrient-measurement
15
Removed:
(->* () (#:id db-id? #:date string?) (or/c nutrient-measurement? #f))]
14
Added:
[get-nutrient-measurement (->* () (#:id db-id? #:date string?) maybe-nutrient-measurement?)]
16
15
[get-nutrient-measurement-values (-> nutrient-measurement-or-id/c nutrient-value-hash/c)]
17
16
[get-nutrient-measurement-value
18
17
(-> nutrient-measurement-or-id/c nutrient? maybe-nutrient-value?)]
19
Removed:
[get-latest-nutrient-measurement (-> (or/c nutrient-measurement? #f))]
18
Added:
[get-latest-nutrient-measurement (-> maybe-nutrient-measurement?)]
20
19
[get-latest-nutrient-measurement-value (-> nutrient? maybe-nutrient-value?)]
21
20
[get-latest-nutrient-measurement-values (-> nutrient-value-hash/c)]
22
21
[delete-nutrient-measurement! (-> nutrient-measurement-or-id/c void?)]))
@@ -44,7 +43,9 @@
44
43
45
44
(define (nutrient-measurement-value nm nutrient)
46
45
(hash-ref (nutrient-measurement-nutrient-values nm) nutrient #f))
46
Added:
47
47
(define nutrient-measurement-or-id/c (or/c nutrient-measurement? db-id?))
48
Added:
(define maybe-nutrient-measurement? (or/c nutrient-measurement? #f))
48
49
49
50
(define (->nm-id nm-or-id)
50
51
(match nm-or-id