| Copyright | Aleksandr Krupenkin 2016-2024 |
|---|---|
| License | Apache-2.0 |
| Maintainer | mail@akru.me |
| Stability | experimental |
| Portability | portable |
| Safe Haskell | Safe-Inferred |
| Language | Haskell2010 |
Network.Polkadot.Metadata.Type.Discovery
Description
Runtime type discovery for generic metadata structures.
Synopsis
- data DiscoveryContext
- class Discovery a where
- discovery :: MonadState DiscoveryContext m => a -> m a
- runDiscovery :: (Discovery a, Traversable t) => (a -> Text) -> t a -> (t a, Set Type)
- prefix :: Lens' DiscoveryContext Text
- types :: Lens' DiscoveryContext (Set Type)
Documentation
data DiscoveryContext Source #
Contains information about types and current context.
Instances
| Monoid DiscoveryContext Source # | |
Defined in Network.Polkadot.Metadata.Type.Discovery Methods mappend :: DiscoveryContext -> DiscoveryContext -> DiscoveryContext # mconcat :: [DiscoveryContext] -> DiscoveryContext # | |
| Semigroup DiscoveryContext Source # | |
Defined in Network.Polkadot.Metadata.Type.Discovery Methods (<>) :: DiscoveryContext -> DiscoveryContext -> DiscoveryContext # sconcat :: NonEmpty DiscoveryContext -> DiscoveryContext # stimes :: Integral b => b -> DiscoveryContext -> DiscoveryContext # | |
| Show DiscoveryContext Source # | |
Defined in Network.Polkadot.Metadata.Type.Discovery Methods showsPrec :: Int -> DiscoveryContext -> ShowS # show :: DiscoveryContext -> String # showList :: [DiscoveryContext] -> ShowS # | |
| Eq DiscoveryContext Source # | |
Defined in Network.Polkadot.Metadata.Type.Discovery Methods (==) :: DiscoveryContext -> DiscoveryContext -> Bool # (/=) :: DiscoveryContext -> DiscoveryContext -> Bool # | |
class Discovery a where Source #
Collects information about runtime types.
Methods
Arguments
| :: MonadState DiscoveryContext m | |
| => a | Input data structure that contains type information. |
| -> m a | Returns the same structure wrapped with registry state monad. |
Discover metadata structure for type information.
Instances
| Discovery Word8 Source # | Skip |
Defined in Network.Polkadot.Metadata.Type.Discovery Methods discovery :: MonadState DiscoveryContext m => Word8 -> m Word8 Source # | |
| Discovery HexString Source # | Skip |
Defined in Network.Polkadot.Metadata.Type.Discovery Methods discovery :: MonadState DiscoveryContext m => HexString -> m HexString Source # | |
| Discovery Text Source # | Skip |
Defined in Network.Polkadot.Metadata.Type.Discovery Methods discovery :: MonadState DiscoveryContext m => Text -> m Text Source # | |
| Discovery Type Source # | Register |
Defined in Network.Polkadot.Metadata.Type.Discovery Methods discovery :: MonadState DiscoveryContext m => Type -> m Type Source # | |
| (Generic a, GDiscovery (NS (NP I) (Code a))) => Discovery a Source # | If input type is generic structure, let's go deep using generics. |
Defined in Network.Polkadot.Metadata.Type.Discovery Methods discovery :: MonadState DiscoveryContext m => a -> m a Source # | |
runDiscovery :: (Discovery a, Traversable t) => (a -> Text) -> t a -> (t a, Set Type) Source #
Discovery types and returns sanitized metadata and set of discovered types.