eeb5e7abd6
Move the http calls into their own module, so we can trace the request and provide a simple copy-to-replay command. We have to work around a bug in the otel library, which would limit our attribute value length to 128 bytes because it uses the wrong option value. ~~~ `ifExists` is finally made more useful for dealing with optional attributes in e.g. lists. Change-Id: Iafab523e9ec4b00136db43f31fdc12aeefb7f77c Reviewed-on: https://cl.tvl.fyi/c/depot/+/11241 Tested-by: BuildkiteCI Autosubmit: Profpatsch <mail@profpatsch.de> Reviewed-by: Profpatsch <mail@profpatsch.de>
18 lines
464 B
Haskell
18 lines
464 B
Haskell
module Optional where
|
|
|
|
import GHC.Records (getField)
|
|
import MyPrelude
|
|
|
|
newtype Optional a = OptionalInternal (Maybe a)
|
|
deriving newtype (Functor)
|
|
|
|
mkOptional :: a -> Optional a
|
|
mkOptional defaultValue = OptionalInternal $ Just defaultValue
|
|
|
|
defaults :: Optional a
|
|
defaults = OptionalInternal Nothing
|
|
|
|
instance HasField "withDefault" (Optional a) (a -> a) where
|
|
getField (OptionalInternal m) defaultValue = case m of
|
|
Nothing -> defaultValue
|
|
Just a -> a
|