Safe Haskell | Safe-Inferred |
---|---|
Language | GHC2021 |
Servant.Hateoas.Resource
Synopsis
- type family MkResource ct :: Type -> Type
- class Resource res where
- wrap :: a -> res a
- addRel :: (String, RelationLink) -> res a -> res a
- addSelfRel :: Resource res => RelationLink -> res a -> res a
- class Resource res => EmbeddingResource res where
- class Resource res => CollectingResource res where
- collect :: a -> res a -> res a
- class ToResource res a where
- toResource :: (res ~ MkResource ct, Accept ct) => Proxy res -> Proxy ct -> a -> res a
Resource
MkResource
type family MkResource ct :: Type -> Type Source #
Type family computing the Resource-Type belonging to this Content-Type.
Instances
type MkResource (HAL t) Source # | |
Defined in Servant.Hateoas.ContentType.HAL |
Base Class
class Resource res where Source #
Class for resources that carry Hypermedia-Relations.
Methods
Wrap a value into a Resource
.
addRel :: (String, RelationLink) -> res a -> res a Source #
Add a hypermedia relation (rel, link)
to a Resource
.
Instances
Resource HALResource Source # | |
Defined in Servant.Hateoas.ContentType.HAL Methods wrap :: a -> HALResource a Source # addRel :: (String, RelationLink) -> HALResource a -> HALResource a Source # |
addSelfRel :: Resource res => RelationLink -> res a -> res a Source #
Add the self-relation to a Resource
.
Specialized classes
class Resource res => EmbeddingResource res where Source #
Class for Resource
s that can embed other resources.
Methods
embed :: ToJSON e => (String, res e) -> res a -> res a Source #
Embed a resource b
with its relation rel
as tuple (rel, b)
.
Instances
EmbeddingResource HALResource Source # | |
Defined in Servant.Hateoas.ContentType.HAL Methods embed :: ToJSON e => (String, HALResource e) -> HALResource a -> HALResource a Source # |
class Resource res => CollectingResource res where Source #
Class for Resource
s that can collect multiple resources.
Creation
class ToResource res a where Source #
Class for converting values of a
to their respective Resource-Representation.
The default implementation wraps the value into a Resource
without adding any further information.
Therefore you can derive an instance for this class.
Minimal complete definition
Nothing
Methods
toResource :: (res ~ MkResource ct, Accept ct) => Proxy res -> Proxy ct -> a -> res a Source #
Describes how a value a
can be converted to a Resource
.
default toResource :: (res ~ MkResource ct, Resource res) => Proxy res -> Proxy ct -> a -> res a Source #
Instances
Resource res => ToResource res Intermediate Source # | |
Defined in Servant.Hateoas.Layer.Type Methods toResource :: (res ~ MkResource ct, Accept ct) => Proxy res -> Proxy ct -> Intermediate -> res Intermediate Source # | |
Resource res => ToResource res [a] Source # | |
Defined in Servant.Hateoas.Resource Methods toResource :: (res ~ MkResource ct, Accept ct) => Proxy res -> Proxy ct -> [a] -> res [a] Source # |