Package

com.snowplowanalytics.iglu.core

typeclasses

Permalink

package typeclasses

Visibility
  1. Public
  2. All

Type Members

  1. trait AttachSchemaKey[E] extends ExtractSchemaKey[E]

    Permalink

    This type class can be instantiated for any type E which after attaching SchemaKey to it will remain same E (like Self-describing JSON - same JValue before and after).

    This type class can be instantiated for any type E which after attaching SchemaKey to it will remain same E (like Self-describing JSON - same JValue before and after).

    Unlike ExtractSchemaKey this type class makes possible also to attach description to entity, not just extract it.

    Instance of this type class also need to decide *how* to attach description to entity as for entities of same type SchemaKey could be attached differently. For e.g. schema key for Self-describing JSON data and self key for JSON Schema, so different instances should be written for different purposes.

    This particularly useful for apps creating, sending or storing Self-describing data (like trackers), or in other words to *attach* description to data

    E

    entity type, mostly intended for various JSON ADTs, like Json4s, Jackson, circe, Argonaut etc, but also can be anything that can bear reference to its description and at the same time remain same type

  2. trait AttachSchemaMap[E] extends ExtractSchemaMap[E]

    Permalink

    This type class can be instantiated for any type E which after attaching SchemaKey to it will remain same E (like Self-describing JSON - same JValue before and after).

    This type class can be instantiated for any type E which after attaching SchemaKey to it will remain same E (like Self-describing JSON - same JValue before and after).

    Unlike ExtractSchemaKey this type class makes possible also to attach description to entity, not just extract it.

    Instance of this type class also need to decide *how* to attach description to entity as for entities of same type SchemaKey could be attached differently. For e.g. schema key for Self-describing JSON data and self key for JSON Schema, so different instances should be written for different purposes.

    This particularly useful for apps creating, sending or storing Self-describing data (like trackers), or in other words to *attach* description to data

    E

    entity type, mostly intended for various JSON ADTs, like Json4s, Jackson, circe, Argonaut etc, but also can be anything that can bear reference to its description and at the same time remain same type

  3. trait ExtractSchemaKey[E] extends AnyRef

    Permalink

    This type class can be instantiated for any type E which can bear its description as SchemaKey

    This type class can be instantiated for any type E which can bear its description as SchemaKey

    Unlike AttachSchemaKey this type class makes possible to *only* extract description from entity. Also it doesn't assume that type E *with* description is the same E without it, so it can be instantiated for not only JSON-like structures, but for case classes as well. But in most cases these type classes can be instantiated for same types.

    It particularly useful for validation/data extraction apps which need to *extract* instance/schema description.

    E

    entity type, mostly intended for various JSON ADTs, like Json4s, Jackson, circe, Argonaut etc, but also can be anything that can bear reference to its description like Thrift, Map[String, String] etc

  4. trait ExtractSchemaMap[E] extends AnyRef

    Permalink

    This type class can be instantiated for any type E which can bear its description as SchemaKey

    This type class can be instantiated for any type E which can bear its description as SchemaKey

    Unlike AttachSchemaKey this type class makes possible to *only* extract description from entity. Also it doesn't assume that type E *with* description is the same E without it, so it can be instantiated for not only JSON-like structures, but for case classes as well. But in most cases these type classes can be instantiated for same types.

    It particularly useful for validation/data extraction apps which need to *extract* instance/schema description.

    E

    entity type, mostly intended for various JSON ADTs, like Json4s, Jackson, circe, Argonaut etc, but also can be anything that can bear reference to its description like Thrift, Map[String, String] etc

  5. trait NormalizeData[D] extends AnyRef

    Permalink

    Type class to render data into it base type D and lowest-level (String) common for all aps

    Type class to render data into it base type D and lowest-level (String) common for all aps

    D

    generic type in which instance can be represented

  6. trait NormalizeSchema[S] extends AnyRef

    Permalink

    Type class to render Schema into its base type S and lowest-level (String) common for all aps

    Type class to render Schema into its base type S and lowest-level (String) common for all aps

    S

    generic type in which Schema can be represented

  7. trait StringifyData[D] extends AnyRef

    Permalink

    Type class to render container with Schema to String

    Type class to render container with Schema to String

    D

    generic type in which data instance can be represented

  8. trait StringifySchema[S] extends AnyRef

    Permalink

    Type class to render container with Schema to String

    Type class to render container with Schema to String

    S

    generic type in which Schema can be represented

  9. trait ToData[E] extends AnyRef

    Permalink

    Mixin for AttachSchemaKey marking that this particular instance of AttachSchemaKey intended for extraction data, not Schemas

  10. trait ToSchema[E] extends AnyRef

    Permalink

    Mixin for AttachSchemaKey marking that this particular instance intended for extraction Schemas, not instances

Ungrouped