hyperion-0.1.0.0
Safe HaskellNone
LanguageHaskell2010

Hyperion.ObjectId

Synopsis

Documentation

newtype ObjectId Source #

An identifier for an object, useful for building filenames and database entries.

Constructors

ObjectId String 

Instances

Instances details
Eq ObjectId Source # 
Instance details

Defined in Hyperion.ObjectId

Ord ObjectId Source # 
Instance details

Defined in Hyperion.ObjectId

Generic ObjectId Source # 
Instance details

Defined in Hyperion.ObjectId

Associated Types

type Rep ObjectId :: Type -> Type #

Methods

from :: ObjectId -> Rep ObjectId x #

to :: Rep ObjectId x -> ObjectId #

ToJSON ObjectId Source # 
Instance details

Defined in Hyperion.ObjectId

FromJSON ObjectId Source # 
Instance details

Defined in Hyperion.ObjectId

Binary ObjectId Source # 
Instance details

Defined in Hyperion.ObjectId

Methods

put :: ObjectId -> Put #

get :: Get ObjectId #

putList :: [ObjectId] -> Put #

type Rep ObjectId Source # 
Instance details

Defined in Hyperion.ObjectId

type Rep ObjectId = D1 ('MetaData "ObjectId" "Hyperion.ObjectId" "hyperion-0.1.0.0-BChDBJtiU1m4GBpewNuAxw" 'True) (C1 ('MetaCons "ObjectId" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String)))

objectIdToString :: ObjectId -> String Source #

Convert an ObjectId to a String.

objectIdToText :: ObjectId -> Text Source #

Convert an ObjectId to Text.

getObjectId :: (Binary a, Typeable a, ToJSON a, HasDB env, MonadReader env m, MonadIO m, MonadCatch m) => a -> m ObjectId Source #

The ObjectId of an object is the result of hashBase64Safe. The first time getObjectId is called, it comptues the ObjectId and stores it in the database before returning it. Subsequent calls read the value from the database.