Advertisement
Guest User

Error handling with wrapped Failjure

a guest
Aug 3rd, 2019
159
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. (defprotocol HasData
  2.   (data [self]))
  3.  
  4. (defrecord AnnotatedFailure [message data]
  5.  
  6.   f/HasFailed
  7.   (failed? [self] true)
  8.   (message [self] (:message self))
  9.  
  10.   HasData
  11.   (data [self] (:data self)))
  12.  
  13.  
  14. (defn fail
  15.   "Returns `AnnotatedFailure` with a `message` and `data`"
  16.   ([message]
  17.    (->AnnotatedFailure message {}))
  18.   ([message data]
  19.    (->AnnotatedFailure message data))
  20.   ([message data & fmt-parts]
  21.    (->AnnotatedFailure (apply format message fmt-parts)
  22.                        data)))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement