julienrf
.
bson
derived
package
derived
Linear Supertypes
AnyRef
,
Any
Ordering
Alphabetic
By inheritance
Inherited
derived
AnyRef
Any
Hide All
Show all
Visibility
Public
All
Type Members
trait
DerivedDecoder
[
A
]
extends
BSONDocumentReader
[
A
]
A
Decoded type
Annotations
@implicitNotFound
(
...
)
trait
DerivedDecoderLowPriority
extends
AnyRef
trait
DerivedEncoder
[
A
]
extends
BSONDocumentWriter
[
A
]
Annotations
@implicitNotFound
(
...
)
trait
DerivedEncoderLowPriority
extends
AnyRef
Value Members
object
DerivedDecoder
extends
DerivedDecoderLowPriority
As usual the derivation process is as follows:
As usual the derivation process is as follows:
let shapeless represent our type A in terms of Coproduct (if it is a sealed trait) or HList (if it is a case class) ;
define how to decode Coproducts and HLists using implicit definitions
object
DerivedEncoder
extends
DerivedEncoderLowPriority
def
codec
[
A
]
(
implicit
decoder:
DerivedDecoder
[
A
]
,
encoder:
DerivedEncoder
[
A
]
)
:
BSONDocumentHandler
[
A
]
def
decoder
[
A
]
(
implicit
decoder:
DerivedDecoder
[
A
]
)
:
BSONDocumentReader
[
A
]
def
encoder
[
A
]
(
implicit
encoder:
DerivedEncoder
[
A
]
)
:
BSONDocumentWriter
[
A
]
Inherited from
AnyRef
Inherited from
Any
Ungrouped