Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- class IRegistry reg where
- has :: MonadIO m => reg v -> Text -> m Bool
- (!) :: MonadIO m => reg v -> Text -> m v
- (!?) :: MonadIO m => reg v -> Text -> m (Maybe v)
- update :: MonadIO m => reg v -> Text -> (v -> m v) -> m ()
- write :: MonadIO m => reg v -> Text -> v -> m ()
- register :: MonadIO m => reg v -> Text -> v -> m ()
- insert :: MonadIO m => reg v -> Int -> Text -> v -> m ()
- delete :: MonadIO m => reg v -> Text -> m ()
- asVec :: reg v -> IOVector v
- forV_ :: (MonadIO m, IRegistry reg) => reg v -> (v -> m ()) -> m ()
- iforV_ :: (MonadIO m, IRegistry reg) => reg v -> (Int -> v -> m ()) -> m ()
- modifyV_ :: (MonadIO m, IRegistry reg) => reg v -> (v -> m v) -> m ()
Documentation
class IRegistry reg where Source #
IRegistry
typeclass presents a registry interface.
The complexity O(1) in the operations can be "amortized" complexity.
has :: MonadIO m => reg v -> Text -> m Bool Source #
O(1) Checking if the specified key exists
(!) :: MonadIO m => reg v -> Text -> m v infixl 9 Source #
O(1) Indexing
(!?) :: MonadIO m => reg v -> Text -> m (Maybe v) infixl 9 Source #
O(1) Safe indexing
update :: MonadIO m => reg v -> Text -> (v -> m v) -> m () Source #
O(1) Update, raise an exception if the key does not exist.
write :: MonadIO m => reg v -> Text -> v -> m () Source #
O(1) Write, raise an exception if the key does not exist.
register :: MonadIO m => reg v -> Text -> v -> m () Source #
O(1) Adding a new value to the last position
insert :: MonadIO m => reg v -> Int -> Text -> v -> m () Source #
O(n) Inserting a new value to the specified position (in the underlying vector)
delete :: MonadIO m => reg v -> Text -> m () Source #
O(n) Deleting the specified value (this is a slow operation).
asVec :: reg v -> IOVector v Source #
O(1) Get the underlying vector. Be careful: modifying the vector might cause a problem.
Instances
forV_ :: (MonadIO m, IRegistry reg) => reg v -> (v -> m ()) -> m () Source #
For-loop over the registry, ignoring the key order.