graphula-2.1.2.0: A simple interface for generating persistent data and linking its dependencies
Safe HaskellNone
LanguageHaskell2010

Graphula.Key

Description

Convenience functions for working with Key dependencies

Synopsis

Documentation

class EntityKeys a where Source #

Associated Types

type Keys a Source #

Type-class for turning a tuple of Entity into a tuple of Key

For example, given:

instance HasDependencies Course where
  type Dependencies Course = (SchoolId, TeacherId)

You would have to do,

course <- node @Course (entityKey school, entityKey teacher) mempty

This type-class allows you to do:

course <- node @Course (keys (school, teacher)) mempty

The type class instances currently scale up 4-tuple Dependencies.

Methods

keys :: a -> Keys a Source #

Instances

Instances details
EntityKeys (Only (Entity a)) Source # 
Instance details

Defined in Graphula.Key

Associated Types

type Keys (Only (Entity a)) 
Instance details

Defined in Graphula.Key

type Keys (Only (Entity a)) = Only (Key a)

Methods

keys :: Only (Entity a) -> Keys (Only (Entity a)) Source #

(TypeError ((('Text "Cannot use naked \8216" ':<>: 'ShowType (Entity a)) ':<>: 'Text "\8217 as argument to \8216keys\8217.") ':$$: (('Text "Did you mean \8216Only (" ':<>: 'ShowType (Entity a)) ':<>: 'Text ")\8217?")) :: Constraint) => EntityKeys (Entity a) Source # 
Instance details

Defined in Graphula.Key

Associated Types

type Keys (Entity a) 
Instance details

Defined in Graphula.Key

type Keys (Entity a) = Key a

Methods

keys :: Entity a -> Keys (Entity a) Source #

EntityKeys (Entity a, Entity b) Source # 
Instance details

Defined in Graphula.Key

Associated Types

type Keys (Entity a, Entity b) 
Instance details

Defined in Graphula.Key

type Keys (Entity a, Entity b) = (Key a, Key b)

Methods

keys :: (Entity a, Entity b) -> Keys (Entity a, Entity b) Source #

EntityKeys (Entity a, Entity b, Entity c) Source # 
Instance details

Defined in Graphula.Key

Associated Types

type Keys (Entity a, Entity b, Entity c) 
Instance details

Defined in Graphula.Key

type Keys (Entity a, Entity b, Entity c) = (Key a, Key b, Key c)

Methods

keys :: (Entity a, Entity b, Entity c) -> Keys (Entity a, Entity b, Entity c) Source #

EntityKeys (Entity a, Entity b, Entity c, Entity d) Source # 
Instance details

Defined in Graphula.Key

Associated Types

type Keys (Entity a, Entity b, Entity c, Entity d) 
Instance details

Defined in Graphula.Key

type Keys (Entity a, Entity b, Entity c, Entity d) = (Key a, Key b, Key c, Key d)

Methods

keys :: (Entity a, Entity b, Entity c, Entity d) -> Keys (Entity a, Entity b, Entity c, Entity d) Source #

onlyKey :: Entity a -> Only (Key a) Source #

Equivalent to Only . entityKey