Skip to content

Instantly share code, notes, and snippets.

@ryjm
Last active September 27, 2024 19:56
Show Gist options
  • Select an option

  • Save ryjm/0b0e4483ef7eefb923399d433cef65ae to your computer and use it in GitHub Desktop.

Select an option

Save ryjm/0b0e4483ef7eefb923399d433cef65ae to your computer and use it in GitHub Desktop.
+$  peek-result
  $_  ^|
  |_  ker=kernel-state
  +$  state
    $%  [%desk-hash _desk-hash.ker]
        [%peers _peers.ker]
        [%topics _topics.ker]
        [%timers _timers.ker]
        [%identity _identity.ker]
        [%haul _haul.chain.ker]
        [%chain _chain.ker]
        [%blocks _blocks.chain.ker]
        [%state _ker]
    ==
  ++  $  |=(@ $>(_+< state))
  --
++  mote
  |_  ker=kernel-state
  ++  raw  $:((peek-result) `kernel-state`ker)
  ++  pe                                               ::  peek , no conversion
    |*  @
    (raw [+< ~])
  ++  to                                               ::  peek, trees -> lists
      |*  $@(@ [in=@ a=mold])
      ?@  +<  (ty +< ,*)
      (ty in a)
  ++  ty
      |*  [in=@ a=mold]
      |^
      =+  res=(raw [in ~])
      ?~  ((soft (tree)) +.res)  res
      =+  lis=(li +.res)
      :-  -.res
      =+  ((soft (list a)) lis)
      ~|  "could not cast {<lis>} to {<a>}"
      (need -)
      ::
      ++  li
        |*  n=*
        ^-  (list)
        ?@  n  ~
        :-  -.n
        %-  zing
        :~  (li +>.n)
            (li +<.n)
        ==
      --
  --
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment