-- 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