package sihl

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type

The service request context is a key value store that can be used to pass arbitrary values from one service to another within the same request.

Key

type 'a key

The key of a value that can be stored in the context. The type of the key has to be indicated explicitly.

val create_key : unit -> 'a key

create_key () creates a key that can be used to store and retrieve values. The type needs to be indicated explicitly.

Example

let string_key: string = Sihl.Core.Ctx.create_key () in
let int_key: int = Sihl.Core.Ctx.create_key () in
let foo_key: Foo.t = Sihl.Core.Ctx.create_key ()

Map

type t

The service request context is a heterogeneous map that can store values of different types. It is typically used to pass values to services that are either 1) only valid in the context of a service request or 2) whose types are hidden so that different service implementations of the same interface can take different values.

val add : 'a key -> 'a -> t -> t

add key ctx adds a value for the key. If there is a value stored with the key it will be silently replaced.

val find : 'a key -> t -> 'a option

find key ctx returns the stored value.

val remove : 'a key -> t -> t

remove key ctx returns the context with the removed value behind the key.

val id : t -> string

id ctx returns the id of the context ctx. The ids of the currently active and used contexts are unique.

val sexp_of_t : t -> Sexplib0.Sexp.t

sexp_of_t t converts the context t to an s-expression

val create : ?id:string -> unit -> t

create ?id returns a context with id, if no id is provided one is randomly generated.

OCaml

Innovation. Community. Security.