| Copyright | (C) 2016 Rev. Johnny Healey |
|---|---|
| License | LGPL-3 |
| Maintainer | Rev. Johnny Healey <rev.null@gmail.com> |
| Stability | experimental |
| Portability | unknown |
| Safe Haskell | None |
| Language | Haskell2010 |
Data.FixFile.BTree
Description
This is a BTree data type that can be used with FixFile. It can be used
as a key-value store where the same key can correspond to multiple values.
It supports logarithmic insert, lookup, and delete operations.
- data BTree n k v a
- createBTreeFile :: (Typeable n, Binary k, Typeable k, Binary v, Typeable v) => FilePath -> IO (FixFile (Ref (BTree n k v)))
- openBTreeFile :: (Binary k, Typeable k, Binary v, Typeable v) => FilePath -> IO (FixFile (Ref (BTree n k v)))
- depth :: Fixed g => g (BTree n k v) -> Int
- insertBTree :: (KnownNat n, Ord k, Fixed g) => k -> v -> g (BTree n k v) -> g (BTree n k v)
- insertBTreeT :: (KnownNat n, Ord k, Binary k, Binary v) => k -> v -> Transaction (Ref (BTree n k v)) s ()
- lookupBTree :: (Ord k, Fixed g) => k -> g (BTree n k v) -> [v]
- lookupBTreeT :: (Ord k, Binary k, Binary v) => k -> Transaction (Ref (BTree n k v)) s [v]
- filterBTree :: (Ord k, Fixed g) => k -> (v -> Bool) -> g (BTree n k v) -> g (BTree n k v)
- filterBTreeT :: (Ord k, Binary k, Binary v) => k -> (v -> Bool) -> Transaction (Ref (BTree n k v)) s ()
- deleteBTree :: (Ord k, Fixed g) => k -> g (BTree n k v) -> g (BTree n k v)
- deleteBTreeT :: (Ord k, Binary k, Binary v) => k -> Transaction (Ref (BTree n k v)) s ()
- partitionBTree :: (Ord k, Fixed g) => k -> g (BTree n k v) -> (g (BTree n k v), g (BTree n k v))
- toListBTree :: (Ord k, Fixed g) => g (BTree n k v) -> [(k, v)]
- fromListBTree :: (KnownNat n, Ord k, Fixed g) => [(k, v)] -> g (BTree n k v)
Documentation
A Fixed ( stores a BTree of key/value pairs.
BTree n k v)n should be a Nat and will be the maximum number of elements in each
branch of the BTree.
Instances
| Functor (BTree n k v) Source # | |
| Foldable (BTree n k v) Source # | |
| Traversable (BTree n k v) Source # | |
| FixedTraversable (BTree n k v) Source # | |
| FixedFoldable (BTree n k v) Source # | |
| FixedFunctor (BTree n k v) Source # | |
| FixedSub (BTree n k v) Source # | |
| FixedAlg (BTree n k v) Source # | |
| Null1 (BTree n k v) Source # | |
| (Read k, Read v, Read a) => Read (BTree n k v a) Source # | |
| (Show k, Show v, Show a) => Show (BTree n k v a) Source # | |
| Generic (BTree n k v a) Source # | |
| (Binary k, Binary v, Binary a) => Binary (BTree n k v a) Source # | |
| type Alg (BTree n k v) Source # | |
| type Sub (BTree n k v) v v' Source # | |
| type Rep (BTree n k v a) Source # | |
createBTreeFile :: (Typeable n, Binary k, Typeable k, Binary v, Typeable v) => FilePath -> IO (FixFile (Ref (BTree n k v))) Source #
openBTreeFile :: (Binary k, Typeable k, Binary v, Typeable v) => FilePath -> IO (FixFile (Ref (BTree n k v))) Source #
insertBTree :: (KnownNat n, Ord k, Fixed g) => k -> v -> g (BTree n k v) -> g (BTree n k v) Source #
insertBTreeT :: (KnownNat n, Ord k, Binary k, Binary v) => k -> v -> Transaction (Ref (BTree n k v)) s () Source #
Transaction version of insertBTree.
lookupBTreeT :: (Ord k, Binary k, Binary v) => k -> Transaction (Ref (BTree n k v)) s [v] Source #
Transaction version of lookupBTree.
filterBTreeT :: (Ord k, Binary k, Binary v) => k -> (v -> Bool) -> Transaction (Ref (BTree n k v)) s () Source #
Transaction version of filterBTree.
deleteBTreeT :: (Ord k, Binary k, Binary v) => k -> Transaction (Ref (BTree n k v)) s () Source #
Transaction version of deleteBTree.
partitionBTree :: (Ord k, Fixed g) => k -> g (BTree n k v) -> (g (BTree n k v), g (BTree n k v)) Source #