telescope-0.3.0: src/Telescope/Asdf.hs
{- |
Module: Telescope.Asdf
Copyright: (c) 2024 Sean Hess
License: BSD3
Maintainer: Sean Hess <shess@nso.edu>
Stability: experimental
Portability: portable
Read, and Write ASDF (Advanced Scientific Data Format) files
> import Data.ByteString qualified as BS
> import Telescope.Asdf
>
> data Example = Example
> { name :: Text
> , items :: [Text]
> , sequence :: [Int64]
> , random :: Array D Ix1 Double
> }
> deriving (Generic, FromAsdf)
>
> example :: IO ()
> example = do
> inp <- BS.readFile "samples/example.asdf"
> ex :: Example <- decodeM inp
> print ex.name
> print ex.items
> print $ take 30 ex.sequence
> print $ take 10 $ M.toList ex.random
-}
module Telescope.Asdf
( -- * Encoding
encodeM
, encode
, ToAsdf (..)
-- * Decoding
, decodeM
, decodeEither
, decode
, FromAsdf (..)
, (.:)
, (.:?)
, AsdfError
, Parser
-- * Binary Data
, FromNDArray (..)
, ToNDArray (..)
, NDArrayData (..)
-- * ASDF Tree
, Asdf (..)
, Node (..)
, Value (..)
, Key
, Object
, fromValue
, SchemaTag
-- * JSON Reference
, jsonPointer
, jsonReference
, JSONReference (..)
, JSONPointer (..)
-- * YAML Anchors
, Anchor (..)
-- ** Exports
, Generic
)
where
import GHC.Generics
import Telescope.Asdf.Class
import Telescope.Asdf.Core (Asdf (..))
import Telescope.Asdf.Encoding
import Telescope.Asdf.Error
import Telescope.Asdf.NDArray
import Telescope.Asdf.Node