module Argo.Decode where import qualified Argo.Class.FromValue as FromValue 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 :: FromValue.FromValue 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. FromValue 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