diff options
Diffstat (limited to 'models/fertilizer-product.rkt')
| -rw-r--r-- | models/fertilizer-product.rkt | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/models/fertilizer-product.rkt b/models/fertilizer-product.rkt index bd6bba9..0a6c03d 100644 --- a/models/fertilizer-product.rkt +++ b/models/fertilizer-product.rkt @@ -30,7 +30,22 @@ "nutrient.rkt") ;; Instances of this struct are persisted in the fertilizer_products table. -(struct fertilizer-product (id canonical-name nutrient-values brand-name) #:transparent) +(struct fertilizer-product (id canonical-name nutrient-values brand-name) + #:transparent + #:property prop:custom-write + (λ (v out _mode) + (fprintf out "Fertilizer #~a\n" (fertilizer-product-id v)) + (if (fertilizer-product-brand-name v) + (fprintf out "~a (~a)\n" + (fertilizer-product-canonical-name v) + (fertilizer-product-brand-name v)) + (fprintf out "~a\n" + (fertilizer-product-canonical-name v))) + (for ([nv (in-list (fertilizer-product-nutrient-values v))]) + (match-define (cons n v) nv) + (fprintf out "~a ~a\n" + (~a (nutrient-name n) #:min-width 14) + (~a v #:max-width 6 #:align 'right))))) ;; CREATE |