mirror of https://github.com/voidlizard/hbs2
wip, injected "notifiers"
This commit is contained in:
parent
94de0d13c8
commit
6884bfe33f
|
|
@ -63,6 +63,16 @@ data RefChanHeadBlock e =
|
||||||
, _refChanHeadReaders' :: HashSet (PubKey 'Encrypt (Encryption e))
|
, _refChanHeadReaders' :: HashSet (PubKey 'Encrypt (Encryption e))
|
||||||
, _refChanHeadExt :: ByteString
|
, _refChanHeadExt :: ByteString
|
||||||
}
|
}
|
||||||
|
| RefChanHeadBlock2
|
||||||
|
{ _refChanHeadVersion :: Integer
|
||||||
|
, _refChanHeadQuorum :: Integer
|
||||||
|
, _refChanHeadWaitAccept :: Integer
|
||||||
|
, _refChanHeadPeers :: HashMap (PubKey 'Sign (Encryption e)) Weight
|
||||||
|
, _refChanHeadAuthors :: HashSet (PubKey 'Sign (Encryption e))
|
||||||
|
, _refChanHeadReaders' :: HashSet (PubKey 'Encrypt (Encryption e))
|
||||||
|
, _refChanHeadNotifiers' :: HashSet (PubKey 'Sign (Encryption e))
|
||||||
|
, _refChanHeadExt :: ByteString
|
||||||
|
}
|
||||||
deriving stock (Generic)
|
deriving stock (Generic)
|
||||||
|
|
||||||
makeLenses ''RefChanHeadBlock
|
makeLenses ''RefChanHeadBlock
|
||||||
|
|
@ -126,7 +136,25 @@ refChanHeadReaders = lens g s
|
||||||
where
|
where
|
||||||
g (RefChanHeadBlockSmall{}) = mempty
|
g (RefChanHeadBlockSmall{}) = mempty
|
||||||
g (RefChanHeadBlock1{..}) = _refChanHeadReaders'
|
g (RefChanHeadBlock1{..}) = _refChanHeadReaders'
|
||||||
|
g (RefChanHeadBlock2{..}) = _refChanHeadReaders'
|
||||||
s v@(RefChanHeadBlock1{}) x = v { _refChanHeadReaders' = x }
|
s v@(RefChanHeadBlock1{}) x = v { _refChanHeadReaders' = x }
|
||||||
|
s v@(RefChanHeadBlock2{}) x = v { _refChanHeadReaders' = x }
|
||||||
|
s x _ = x
|
||||||
|
|
||||||
|
|
||||||
|
refChanHeadNotifiers :: ForRefChans e
|
||||||
|
=> Lens (RefChanHeadBlock e)
|
||||||
|
(RefChanHeadBlock e)
|
||||||
|
(HashSet (PubKey 'Sign (Encryption e)))
|
||||||
|
(HashSet (PubKey 'Sign (Encryption e)))
|
||||||
|
|
||||||
|
refChanHeadNotifiers = lens g s
|
||||||
|
where
|
||||||
|
g (RefChanHeadBlockSmall{}) = mempty
|
||||||
|
g (RefChanHeadBlock1{}) = mempty
|
||||||
|
g (RefChanHeadBlock2{..}) = _refChanHeadNotifiers'
|
||||||
|
|
||||||
|
s v@(RefChanHeadBlock2{}) x = v { _refChanHeadNotifiers' = x }
|
||||||
s x _ = x
|
s x _ = x
|
||||||
|
|
||||||
instance ForRefChans e => Serialise (RefChanHeadBlock e)
|
instance ForRefChans e => Serialise (RefChanHeadBlock e)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue