ruby-marshal-0.1.3: Parse a subset of Ruby objects serialised with Marshal.dump.

Copyright(c) Philip Cunningham 2015
LicenseMIT
Maintainerhello@filib.io
Stabilityexperimental
Portabilityportable
Safe HaskellNone
LanguageHaskell2010

Data.Ruby.Marshal.Types

Contents

Description

Common types for Ruby Marshal deserialisation.

Synopsis

Marshal Monad

data Marshal a Source #

Marshal monad endows the underlying Get monad with State.

Instances
Monad Marshal Source # 
Instance details

Defined in Data.Ruby.Marshal.Monad

Methods

(>>=) :: Marshal a -> (a -> Marshal b) -> Marshal b #

(>>) :: Marshal a -> Marshal b -> Marshal b #

return :: a -> Marshal a #

fail :: String -> Marshal a #

Functor Marshal Source # 
Instance details

Defined in Data.Ruby.Marshal.Monad

Methods

fmap :: (a -> b) -> Marshal a -> Marshal b #

(<$) :: a -> Marshal b -> Marshal a #

Applicative Marshal Source # 
Instance details

Defined in Data.Ruby.Marshal.Monad

Methods

pure :: a -> Marshal a #

(<*>) :: Marshal (a -> b) -> Marshal a -> Marshal b #

liftA2 :: (a -> b -> c) -> Marshal a -> Marshal b -> Marshal c #

(*>) :: Marshal a -> Marshal b -> Marshal b #

(<*) :: Marshal a -> Marshal b -> Marshal a #

MonadState Cache Marshal Source # 
Instance details

Defined in Data.Ruby.Marshal.Monad

Methods

get :: Marshal Cache #

put :: Cache -> Marshal () #

state :: (Cache -> (a, Cache)) -> Marshal a #

Internal cache

data Cache Source #

State that we must carry around during deserialisation.

Instances
Show Cache Source # 
Instance details

Defined in Data.Ruby.Marshal.Monad

Methods

showsPrec :: Int -> Cache -> ShowS #

show :: Cache -> String #

showList :: [Cache] -> ShowS #

MonadState Cache Marshal Source # 
Instance details

Defined in Data.Ruby.Marshal.Monad

Methods

get :: Marshal Cache #

put :: Cache -> Marshal () #

state :: (Cache -> (a, Cache)) -> Marshal a #

Ruby string encodings

data RubyStringEncoding Source #

ADT representing all supported Ruby encodings.

Ruby object

data RubyObject Source #

Representation of a Ruby object.

Constructors

RNil

represents nil

RBool !Bool

represents true or false

RFixnum !Int

represents a Fixnum

RArray !(Vector RubyObject)

represents an Array

RHash !(Vector (RubyObject, RubyObject))

represents an Hash

RIVar !(RubyObject, RubyStringEncoding)

represents an IVar

RString !ByteString

represents a String

RFloat !Float

represents a Float

RSymbol !ByteString

represents a Symbol

Unsupported

represents an invalid object

Patterns

pattern NilChar :: forall a. (Eq a, Num a) => a Source #

Character that represents NilCharlass.

pattern FalseChar :: forall a. (Eq a, Num a) => a Source #

Character that represents FalseClass.

pattern TrueChar :: forall a. (Eq a, Num a) => a Source #

Character that represents TrueClass.

pattern ArrayChar :: forall a. (Eq a, Num a) => a Source #

Character that represents Array.

pattern FixnumChar :: forall a. (Eq a, Num a) => a Source #

Character that represents Fixnum.

pattern FloatChar :: forall a. (Eq a, Num a) => a Source #

Character that represents Float.

pattern HashChar :: forall a. (Eq a, Num a) => a Source #

Character that represents Hash.

pattern IVarChar :: forall a. (Eq a, Num a) => a Source #

Character that represents IVar.

pattern ObjectLinkChar :: forall a. (Eq a, Num a) => a Source #

Character that represents Object link.

pattern StringChar :: forall a. (Eq a, Num a) => a Source #

Character that represents String.

pattern SymbolChar :: forall a. (Eq a, Num a) => a Source #

Character that represents Symbol.

pattern SymlinkChar :: forall a. (Eq a, Num a) => a Source #

Character that represents Symlink.