-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | Parse a subset of Ruby objects serialised with Marshal.dump.
--
-- Parse a subset of Ruby objects serialised with Marshal.dump.
@package ruby-marshal
@version 0.0.1
-- | Helper module for parsing Int.
module Data.Ruby.Marshal.Internal.Int
-- | Read an Int8.
getInt8 :: Get Int8
-- | Read an Int16.
getInt16le :: Get Int16
-- | Read an Int24. Since Int24 unavailable in Data.Int we use Int32.
getInt24le :: Get Int32
-- | Read an Int32.
getInt32le :: Get Int32
-- | 16-bit signed integer type
data Int16 :: *
getWord8 :: Get Word8
getWord16le :: Get Word16
-- | Read a Word24 in little endian format. Since Word24 unavailable in
-- Data.Int we use Word32.
getWord24le :: Get Word32
getWord32le :: Get Word32
-- | 8-bit unsigned integer type
data Word8 :: *
module Data.Ruby.Marshal.Types
data Cache
Cache :: Vector RubyObject -> Vector RubyObject -> Cache
-- | object cache.
_objects :: Cache -> Vector RubyObject
-- | symbol cache.
_symbols :: Cache -> Vector RubyObject
-- | Convey when unsupported object encountered.
data Error
-- | represents an unsupported Ruby object
Unsupported :: Error
-- | Marshal monad endows the underling Get monad with State.
newtype Marshal a
Marshal :: StateT Cache Get a -> Marshal a
runMarshal :: Marshal a -> StateT Cache Get a
-- | Lift Get monad into Marshal monad.
liftMarshal :: Get a -> Marshal a
-- | Representation of a Ruby object.
data RubyObject
-- | represents nil
RNil :: RubyObject
-- | represents true or false
RBool :: !Bool -> RubyObject
-- | represents a Fixnum
RFixnum :: {-# UNPACK #-} !Int -> RubyObject
-- | represents an Array
RArray :: !(Vector RubyObject) -> RubyObject
-- | represents an Hash
RHash :: !(Map RubyObject RubyObject) -> RubyObject
-- | represents an IVar
RIVar :: !(RubyObject, ByteString) -> RubyObject
-- | represents a String
RString :: !ByteString -> RubyObject
-- | represents a Float
RFloat :: {-# UNPACK #-} !Double -> RubyObject
-- | represents a Symbol
RSymbol :: !ByteString -> RubyObject
-- | represents an invalid object
RError :: !Error -> RubyObject
-- | NilClass
-- | FalseClass
-- | TrueClass
-- | Array
-- | Fixnum
-- | Float
-- | Hash
-- | IVar
-- | Object link
-- | String
-- | Symbol
-- | Symlink
instance Eq Error
instance Ord Error
instance Show Error
instance Eq RubyObject
instance Ord RubyObject
instance Show RubyObject
instance Show Cache
instance Functor Marshal
instance Applicative Marshal
instance Monad Marshal
instance MonadState Cache Marshal
-- | Ruby Marshal deserialiser using Data.Serialize.
module Data.Ruby.Marshal.Get
-- | Deserialises Marshal version.
getMarshalVersion :: Marshal (Word8, Word8)
-- | Deserialises a subset of Ruby objects.
getRubyObject :: Marshal RubyObject
-- | Deserialises nil.
getNil :: Marshal ()
-- | Deserialises true and false.
getBool :: Marshal Bool
-- | Deserialises Array.
getArray :: Marshal a -> Marshal (Vector a)
-- | Deserialises Fixnum.
getFixnum :: Marshal Int
-- | Deserialises Float.
getFloat :: Marshal Double
-- | Deserialises Hash.
getHash :: Ord k => Marshal k -> Marshal v -> Marshal (Map k v)
-- | Deserialises Instance Variables.
getIVar :: Marshal RubyObject -> Marshal (RubyObject, ByteString)
-- | Deserialises Symbol.
getObjectLink :: Marshal (RubyObject, ByteString)
-- | Deserialises String.
getString :: Marshal ByteString
-- | Deserialises Symbol.
getSymbol :: Marshal ByteString
-- | Deserialises Symbol.
getSymlink :: Marshal ByteString
-- | Simple interface to deserialise Ruby Marshal binary.
module Data.Ruby.Marshal
-- | Deserialises a subset of Ruby objects serialised with Marshal, Ruby's
-- built-in binary serialisation format.
decode :: ByteString -> Maybe RubyObject
-- | Deserialises a subset of Ruby objects serialised with Marshal, Ruby's
-- built-in binary serialisation format.
decodeEither :: ByteString -> Either String RubyObject