hit-0.6.3: Git operations in haskell

License | BSD-style
Maintainer | Vincent Hanquez <vincent@snarc.org>
Stability | experimental
Portability | unix
Safe Haskell | None
Language | Haskell98

Data.Git.Storage.Object

Contents

- parsing function
- writing function

Description

Synopsis

- data ObjectLocation
  - = NotFound
  - | Loose Ref
  - | Packed Ref Word64
- data ObjectType
  - = TypeTree
  - | TypeBlob
  - | TypeCommit
  - | TypeTag
  - | TypeDeltaOff
  - | TypeDeltaRef
- type ObjectHeader = (ObjectType, Word64, Maybe ObjectPtr)
- type ObjectData = ByteString
- data ObjectPtr
  - = PtrRef Ref
  - | PtrOfs Word64
- data Object
  - = ObjCommit Commit
  - | ObjTag Tag
  - | ObjBlob Blob
  - | ObjTree Tree
  - | ObjDeltaOfs DeltaOfs
  - | ObjDeltaRef DeltaRef
- data ObjectInfo = ObjectInfo {
  - oiHeader :: ObjectHeader
  - oiData :: ObjectData
  - oiChains :: [ObjectPtr]
  }
- class Objectable a where
- objectToType :: Object -> ObjectType
- objectTypeMarshall :: ObjectType -> String
- objectTypeUnmarshall :: String -> ObjectType
- objectTypeIsDelta :: ObjectType -> Bool
- objectIsDelta :: Object -> Bool
- objectToTree :: Object -> Maybe Tree
- objectToCommit :: Object -> Maybe Commit
- objectToTag :: Object -> Maybe Tag
- objectToBlob :: Object -> Maybe Blob
- treeParse :: Parser ByteString Tree
- commitParse :: Parser ByteString Commit
- tagParse :: Parser ByteString Tag
- blobParse :: Parser ByteString Blob
- objectParseTree :: Parser ByteString Object
- objectParseCommit :: Parser ByteString Object
- objectParseTag :: Parser ByteString Object
- objectParseBlob :: Parser ByteString Object
- objectWriteHeader :: ObjectType -> Word64 -> ByteString
- objectWrite :: Object -> ByteString
- objectHash :: ObjectType -> Word64 -> ByteString -> Ref

# Documentation

data ObjectLocation Source #

location of an object in the database

Constructors

NotFound |
Loose Ref |
Packed Ref Word64 |

Instances

Eq ObjectLocation Source # |
Methods (==) :: ObjectLocation -> ObjectLocation -> Bool # (/=) :: ObjectLocation -> ObjectLocation -> Bool #
Show ObjectLocation Source # |
Methods showsPrec :: Int -> ObjectLocation -> ShowS # show :: ObjectLocation -> String # showList :: [ObjectLocation] -> ShowS #

data ObjectType Source #

type of a git object.

Constructors

TypeTree |
TypeBlob |
TypeCommit |
TypeTag |
TypeDeltaOff |
TypeDeltaRef |

Instances

Enum ObjectType Source # | the enum instance is useful when marshalling to pack file.
Methods succ :: ObjectType -> ObjectType # pred :: ObjectType -> ObjectType # toEnum :: Int -> ObjectType # fromEnum :: ObjectType -> Int # enumFrom :: ObjectType -> [ObjectType] # enumFromThen :: ObjectType -> ObjectType -> [ObjectType] # enumFromTo :: ObjectType -> ObjectType -> [ObjectType] # enumFromThenTo :: ObjectType -> ObjectType -> ObjectType -> [ObjectType] #
Eq ObjectType Source # |
Methods (==) :: ObjectType -> ObjectType -> Bool # (/=) :: ObjectType -> ObjectType -> Bool #
Data ObjectType Source # |

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ObjectType -> c ObjectType #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c ObjectType #

toConstr :: ObjectType -> Constr #

dataTypeOf :: ObjectType -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c ObjectType) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c ObjectType) #

gmapT :: (forall b. Data b => b -> b) -> ObjectType -> ObjectType #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ObjectType -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ObjectType -> r #

gmapQ :: (forall d. Data d => d -> u) -> ObjectType -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> ObjectType -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> ObjectType -> m ObjectType #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ObjectType -> m ObjectType #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ObjectType -> m ObjectType #

Show ObjectType Source # |
Methods showsPrec :: Int -> ObjectType -> ShowS # show :: ObjectType -> String # showList :: [ObjectType] -> ShowS #

type ObjectHeader = (ObjectType, Word64, Maybe ObjectPtr) Source #

type ObjectData = ByteString Source #

data ObjectPtr Source #

Delta objects points to some others objects in the database either as offset in the pack or as a direct reference.

Constructors

PtrRef Ref |
PtrOfs Word64 |

Instances

Eq ObjectPtr Source # |
Methods (==) :: ObjectPtr -> ObjectPtr -> Bool # (/=) :: ObjectPtr -> ObjectPtr -> Bool #
Show ObjectPtr Source # |
Methods showsPrec :: Int -> ObjectPtr -> ShowS # show :: ObjectPtr -> String # showList :: [ObjectPtr] -> ShowS #

data Object Source #

describe a git object, that could of 6 differents types: tree, blob, commit, tag and deltas (offset or ref). the deltas one are only available in packs.

Constructors

ObjCommit Commit |
ObjTag Tag |
ObjBlob Blob |
ObjTree Tree |
ObjDeltaOfs DeltaOfs |
ObjDeltaRef DeltaRef |

Instances

Eq Object Source # |
Methods (==) :: Object -> Object -> Bool # (/=) :: Object -> Object -> Bool #
Show Object Source # |
Methods showsPrec :: Int -> Object -> ShowS # show :: Object -> String # showList :: [Object] -> ShowS #

data ObjectInfo Source #

Raw objects infos have an header (type, size, ptr), the data and a pointers chains to parents for resolved objects.

Constructors

ObjectInfo |

Fields

- oiHeader :: ObjectHeader
- oiData :: ObjectData
- oiChains :: [ObjectPtr]

Instances

Eq ObjectInfo Source # |
Methods (==) :: ObjectInfo -> ObjectInfo -> Bool # (/=) :: ObjectInfo -> ObjectInfo -> Bool #
Show ObjectInfo Source # |
Methods showsPrec :: Int -> ObjectInfo -> ShowS # show :: ObjectInfo -> String # showList :: [ObjectInfo] -> ShowS #

class Objectable a where Source #

Minimal complete definition

getType, getRaw, isDelta, toObject

Methods

getType :: a -> ObjectType Source #

getRaw :: a -> ByteString Source #

isDelta :: a -> Bool Source #

toObject :: a -> Object Source #

Instances

Objectable DeltaRef Source # |
Methods getType :: DeltaRef -> ObjectType Source # getRaw :: DeltaRef -> ByteString Source # isDelta :: DeltaRef -> Bool Source # toObject :: DeltaRef -> Object Source #
Objectable DeltaOfs Source # |
Methods getType :: DeltaOfs -> ObjectType Source # getRaw :: DeltaOfs -> ByteString Source # isDelta :: DeltaOfs -> Bool Source # toObject :: DeltaOfs -> Object Source #
Objectable Tag Source # |
Methods getType :: Tag -> ObjectType Source # getRaw :: Tag -> ByteString Source # isDelta :: Tag -> Bool Source # toObject :: Tag -> Object Source #
Objectable Commit Source # |
Methods getType :: Commit -> ObjectType Source # getRaw :: Commit -> ByteString Source # isDelta :: Commit -> Bool Source # toObject :: Commit -> Object Source #
Objectable Blob Source # |
Methods getType :: Blob -> ObjectType Source # getRaw :: Blob -> ByteString Source # isDelta :: Blob -> Bool Source # toObject :: Blob -> Object Source #
Objectable Tree Source # |
Methods getType :: Tree -> ObjectType Source # getRaw :: Tree -> ByteString Source # isDelta :: Tree -> Bool Source # toObject :: Tree -> Object Source #

objectToType :: Object -> ObjectType Source #

objectTypeMarshall :: ObjectType -> String Source #

objectTypeUnmarshall :: String -> ObjectType Source #

objectTypeIsDelta :: ObjectType -> Bool Source #

objectIsDelta :: Object -> Bool Source #

objectToTree :: Object -> Maybe Tree Source #

objectToCommit :: Object -> Maybe Commit Source #

objectToTag :: Object -> Maybe Tag Source #

objectToBlob :: Object -> Maybe Blob Source #

# parsing function

treeParse :: Parser ByteString Tree Source #

parse a tree content

commitParse :: Parser ByteString Commit Source #

parse a commit content

tagParse :: Parser ByteString Tag Source #

parse a tag content

blobParse :: Parser ByteString Blob Source #

parse a blob content

objectParseTree :: Parser ByteString Object Source #

objectParseCommit :: Parser ByteString Object Source #

objectParseTag :: Parser ByteString Object Source #

objectParseBlob :: Parser ByteString Object Source #

# writing function

objectWriteHeader :: ObjectType -> Word64 -> ByteString Source #

objectWrite :: Object -> ByteString Source #

objectHash :: ObjectType -> Word64 -> ByteString -> Ref Source #