module Argo.Decode where import qualified Argo.Class.FromValue as FromValue import qualified Argo.Class.HasCodec as HasCodec import qualified Argo.Json.Value as Value import qualified Argo.Pointer.Pointer as Pointer import qualified Argo.Type.Decoder as Decoder import qualified Argo.Vendor.ByteString as ByteString decode :: HasCodec.HasCodec a => ByteString.ByteString -> Either String a decode :: ByteString -> Either String a decode ByteString x = do Value y <- Decoder Value -> ByteString -> Either String Value forall a. Decoder a -> ByteString -> Either String a Decoder.run (Decoder () Decoder.spaces Decoder () -> Decoder Value -> Decoder Value forall (f :: * -> *) a b. Applicative f => f a -> f b -> f b *> Decoder Value Value.decode) ByteString x Value -> Either String a forall a. HasCodec a => Value -> Either String a FromValue.fromValue Value y decodePointer :: ByteString.ByteString -> Either String Pointer.Pointer decodePointer :: ByteString -> Either String Pointer decodePointer = Decoder Pointer -> ByteString -> Either String Pointer forall a. Decoder a -> ByteString -> Either String a Decoder.run Decoder Pointer Pointer.decode