~ruther/guix-local

f73286345e8e9cb059f54a9d68fe19e57de75cdc — Ludovic Courtès 11 years ago c568191
gexp: Add printers for <gexp-input> and <gexp-output>.

* guix/gexp.scm (write-gexp-input, write-gexp-output): New procedures.
  (<gexp-input>, <gexp-output>): Use them as printers.
1 files changed, 16 insertions(+), 0 deletions(-)

M guix/gexp.scm
M guix/gexp.scm => guix/gexp.scm +16 -0
@@ 179,6 179,15 @@ This is the declarative counterpart of the 'interned-file' monadic procedure."
  (output    gexp-input-output)      ;string
  (native?   gexp-input-native?))    ;Boolean

(define (write-gexp-input input port)
  (match input
    (($ <gexp-input> thing output #f)
     (format port "#<gexp-input ~s:~a>" thing output))
    (($ <gexp-input> thing output #t)
     (format port "#<gexp-input native ~s:~a>" thing output))))

(set-record-type-printer! <gexp-input> write-gexp-input)

(define* (gexp-input thing                        ;convenience procedure
                     #:optional (output "out")
                     #:key native?)


@@ 193,6 202,13 @@ whether this should be considered a \"native\" input or not."
  gexp-output?
  (name gexp-output-name))

(define (write-gexp-output output port)
  (match output
    (($ <gexp-output> name)
     (format port "#<gexp-output ~a>" name))))

(set-record-type-printer! <gexp-output> write-gexp-output)

(define raw-derivation
  (store-lift derivation))