lsm-tree-0.1.0.0: Log-structured merge-trees
Safe HaskellSafe-Inferred
LanguageGHC2021

Database.LSMTree.Internal.Serialise

Description

Newtype wrappers and utilities for serialised keys, values and blobs.

Synopsis

Re-exports

class SerialiseKey k Source #

Serialisation of keys.

Instances should satisfy the following laws:

Identity
deserialiseKey (serialiseKey x) == x
Identity up to slicing
deserialiseKey (packSlice prefix (serialiseKey x) suffix) == x

Minimal complete definition

serialiseKey, deserialiseKey

Instances

Instances details
SerialiseKey ByteArray Source #

serialiseKey: \(O(1)\).

deserialiseKey: \(O(n)\).

Instance details

Defined in Database.LSMTree.Internal.Serialise.Class

SerialiseKey Int16 Source #

serialiseKey: \(O(1)\).

deserialiseKey: \(O(1)\).

Instance details

Defined in Database.LSMTree.Internal.Serialise.Class

SerialiseKey Int32 Source #

serialiseKey: \(O(1)\).

deserialiseKey: \(O(1)\).

Instance details

Defined in Database.LSMTree.Internal.Serialise.Class

SerialiseKey Int64 Source #

serialiseKey: \(O(1)\).

deserialiseKey: \(O(1)\).

Instance details

Defined in Database.LSMTree.Internal.Serialise.Class

SerialiseKey Int8 Source #

serialiseKey: \(O(1)\).

deserialiseKey: \(O(1)\).

Instance details

Defined in Database.LSMTree.Internal.Serialise.Class

SerialiseKey Word16 Source #

serialiseKey: \(O(1)\).

deserialiseKey: \(O(1)\).

Instance details

Defined in Database.LSMTree.Internal.Serialise.Class

SerialiseKey Word32 Source #

serialiseKey: \(O(1)\).

deserialiseKey: \(O(1)\).

Instance details

Defined in Database.LSMTree.Internal.Serialise.Class

SerialiseKey Word64 Source #

serialiseKey: \(O(1)\).

deserialiseKey: \(O(1)\).

Instance details

Defined in Database.LSMTree.Internal.Serialise.Class

SerialiseKey Word8 Source #

serialiseKey: \(O(1)\).

deserialiseKey: \(O(1)\).

Instance details

Defined in Database.LSMTree.Internal.Serialise.Class

SerialiseKey ByteString Source #

serialiseKey: \(O(n)\).

deserialiseKey: \(O(n)\).

Instance details

Defined in Database.LSMTree.Internal.Serialise.Class

SerialiseKey ByteString Source #

serialiseKey: \(O(n)\).

deserialiseKey: \(O(n)\).

Instance details

Defined in Database.LSMTree.Internal.Serialise.Class

SerialiseKey ShortByteString Source #

serialiseKey: \(O(1)\).

deserialiseKey: \(O(n)\).

Instance details

Defined in Database.LSMTree.Internal.Serialise.Class

SerialiseKey String Source #

serialiseKey: \(O(n)\).

deserialiseKey: \(O(n)\).

The String is (de)serialised as UTF-8.

Instance details

Defined in Database.LSMTree.Internal.Serialise.Class

SerialiseKey Int Source #

serialiseKey: \(O(1)\).

deserialiseKey: \(O(1)\).

Instance details

Defined in Database.LSMTree.Internal.Serialise.Class

SerialiseKey Word Source #

serialiseKey: \(O(1)\).

deserialiseKey: \(O(1)\).

Instance details

Defined in Database.LSMTree.Internal.Serialise.Class

class SerialiseValue v Source #

Serialisation of values and blobs.

Instances should satisfy the following laws:

Identity
deserialiseValue (serialiseValue x) == x
Identity up to slicing
deserialiseValue (packSlice prefix (serialiseValue x) suffix) == x

Minimal complete definition

serialiseValue, deserialiseValue

Instances

Instances details
SerialiseValue ByteArray Source #

serialiseValue: \(O(1)\).

deserialiseValue: \(O(n)\).

Instance details

Defined in Database.LSMTree.Internal.Serialise.Class

SerialiseValue Void Source #

This instance is intended for tables without blobs.

The implementation of deseriValue throws an excepValuen.

Instance details

Defined in Database.LSMTree.Internal.Serialise.Class

SerialiseValue Int16 Source #

serialiseValue: \(O(1)\).

deserialiseValue: \(O(1)\).

Instance details

Defined in Database.LSMTree.Internal.Serialise.Class

SerialiseValue Int32 Source #

serialiseValue: \(O(1)\).

deserialiseValue: \(O(1)\).

Instance details

Defined in Database.LSMTree.Internal.Serialise.Class

SerialiseValue Int64 Source #

serialiseValue: \(O(1)\).

deserialiseValue: \(O(1)\).

Instance details

Defined in Database.LSMTree.Internal.Serialise.Class

SerialiseValue Int8 Source #

serialiseValue: \(O(1)\).

deserialiseValue: \(O(1)\).

Instance details

Defined in Database.LSMTree.Internal.Serialise.Class

SerialiseValue Word16 Source #

serialiseValue: \(O(1)\).

deserialiseValue: \(O(1)\).

Instance details

Defined in Database.LSMTree.Internal.Serialise.Class

SerialiseValue Word32 Source #

serialiseValue: \(O(1)\).

deserialiseValue: \(O(1)\).

Instance details

Defined in Database.LSMTree.Internal.Serialise.Class

SerialiseValue Word64 Source #

serialiseValue: \(O(1)\).

deserialiseValue: \(O(1)\).

Instance details

Defined in Database.LSMTree.Internal.Serialise.Class

SerialiseValue Word8 Source #

serialiseValue: \(O(1)\).

deserialiseValue: \(O(1)\).

Instance details

Defined in Database.LSMTree.Internal.Serialise.Class

SerialiseValue ByteString Source #

serialiseValue: \(O(n)\).

deserialiseValue: \(O(n)\).

Instance details

Defined in Database.LSMTree.Internal.Serialise.Class

SerialiseValue ByteString Source #

serialiseValue: \(O(n)\).

deserialiseValue: \(O(n)\).

Instance details

Defined in Database.LSMTree.Internal.Serialise.Class

SerialiseValue ShortByteString Source #

serialiseValue: \(O(1)\).

deserialiseValue: \(O(n)\).

Instance details

Defined in Database.LSMTree.Internal.Serialise.Class

SerialiseValue String Source #

serialiseKey: \(O(n)\).

deserialiseKey: \(O(n)\).

The String is (de)serialiseValue as UTF-8.

Instance details

Defined in Database.LSMTree.Internal.Serialise.Class

SerialiseValue Int Source #

serialiseValue: \(O(1)\).

deserialiseValue: \(O(1)\).

Instance details

Defined in Database.LSMTree.Internal.Serialise.Class

SerialiseValue Word Source #

serialiseValue: \(O(1)\).

deserialiseValue: \(O(1)\).

Instance details

Defined in Database.LSMTree.Internal.Serialise.Class

SerialiseValue a => SerialiseValue (Sum a) Source #

An instance for Sum which is transparent to the serialisation of the value type.

NOTE: If you want to seriValue Sum a differValuely from a, you must use another newtype wrapper.

Instance details

Defined in Database.LSMTree.Internal.Serialise.Class

SerialiseValue v => SerialiseValue (ResolveAsFirst v) Source # 
Instance details

Defined in Database.LSMTree.Internal.Types

SerialiseValue v => SerialiseValue (ResolveViaSemigroup v) Source # 
Instance details

Defined in Database.LSMTree.Internal.Types

Keys

newtype SerialisedKey Source #

Representation of a serialised key.

Serialisation should preserve equality and ordering. The Ord instance for SerialisedKey uses lexicographical ordering.

Constructors

SerialisedKey RawBytes 

Bundled Patterns

pattern SerialisedKey' :: Vector Word8 -> SerialisedKey 

Instances

Instances details
Show SerialisedKey Source # 
Instance details

Defined in Database.LSMTree.Internal.Serialise

NFData SerialisedKey Source # 
Instance details

Defined in Database.LSMTree.Internal.Serialise

Methods

rnf :: SerialisedKey -> () #

Eq SerialisedKey Source # 
Instance details

Defined in Database.LSMTree.Internal.Serialise

Ord SerialisedKey Source # 
Instance details

Defined in Database.LSMTree.Internal.Serialise

Hashable SerialisedKey Source # 
Instance details

Defined in Database.LSMTree.Internal.Serialise

Show (Unsliced SerialisedKey) Source # 
Instance details

Defined in Database.LSMTree.Internal.Unsliced

Eq (Unsliced SerialisedKey) Source # 
Instance details

Defined in Database.LSMTree.Internal.Unsliced

Ord (Unsliced SerialisedKey) Source # 
Instance details

Defined in Database.LSMTree.Internal.Unsliced

sizeofKey :: SerialisedKey -> Int Source #

Size of key in number of bytes.

sizeofKey16 :: SerialisedKey -> Word16 Source #

Size of key in number of bytes.

sizeofKey32 :: SerialisedKey -> Word32 Source #

Size of key in number of bytes.

sizeofKey64 :: SerialisedKey -> Word64 Source #

Size of key in number of bytes.

Values

sizeofValue16 :: SerialisedValue -> Word16 Source #

Size of value in number of bytes.

sizeofValue32 :: SerialisedValue -> Word32 Source #

Size of value in number of bytes.

sizeofValue64 :: SerialisedValue -> Word64 Source #

Size of value in number of bytes.

Blobs

sizeofBlob :: SerialisedBlob -> Int Source #

Size of blob in number of bytes.