MarpaX-Hoonlint

 view release on metacpan or  search on metacpan

hoons/arvo/lib/hood/drum.hoon  view on Meta::CPAN

::                                                      ::  ::
::::  /hoon/drum/hood/lib                               ::  ::
  ::                                                    ::  ::
/?    310                                               ::  version
/-    sole, hall
/+    sole
[. ^sole]
::                                                      ::  ::
::::                                                    ::  ::
  ::                                                    ::  ::
|%                                                      ::  ::
++  part      {$drum $2 pith-2}                         ::
++  part-old  {$drum $1 pith-1}                         ::
::                                                      ::
++  pith-1                                              ::       pre-style
  %+  cork  pith-2                                      ::
  |=(pith-2 +<(bin *(map bone source-1)))               ::
::                                                      ::
++  source-1                                            ::
  %+  cork  source                                      ::
  |=(source +<(mir *(pair @ud (list @c))))              ::  style-less mir
::                                                      ::
++  pith-2                                              ::
  $:  sys/(unit bone)                                   ::  local console
      eel/(set gill:gall)                              ::  connect to
      ray/(set well:gall)                              ::
      fur/(map dude:gall (unit server))                ::  servers
      bin/(map bone source)                             ::  terminals
  ==                                                    ::
::                                                      ::  ::
::::                                                    ::  ::
  ::                                                    ::  ::
++  server                                              ::  running server
  $:  syd/desk                                          ::  app identity
      cas/case                                          ::  boot case
  ==                                                    ::
++  kill                                                ::  kill ring
  $:  pos/@ud                                           ::  ring position
      num/@ud                                           ::  number of entries
      max/_60                                           ::  max entries
      old/(list (list @c))                              ::  entries proper
  ==                                                    ::
++  source                                              ::  input device
  $:  edg/_80                                           ::  terminal columns
      off/@ud                                           ::  window offset
      kil/kill                                          ::  kill buffer
      inx/@ud                                           ::  ring index
      fug/(map gill:gall (unit target))                ::  connections
      mir/(pair @ud stub:dill)                         ::  mirrored terminal
  ==                                                    ::
++  history                                             ::  past input
  $:  pos/@ud                                           ::  input position
      num/@ud                                           ::  number of entries
      lay/(map @ud (list @c))                           ::  editing overlay
      old/(list (list @c))                              ::  entries proper
  ==                                                    ::
++  search                                              ::  reverse-i-search
  $:  pos/@ud                                           ::  search position
      str/(list @c)                                     ::  search string
  ==                                                    ::
++  target                                              ::  application target
  $:  $=  blt                                           ::  curr & prev belts
        %+  pair
          (unit dill-belt:dill)
        (unit dill-belt:dill)
      ris/(unit search)                                 ::  reverse-i-search
      hit/history                                       ::  all past input
      pom/sole-prompt                                   ::  static prompt
      inp/sole-command                                  ::  input state
  ==                                                    ::
--
::                                                      ::  ::
::::                                                    ::  ::
  ::                                                    ::  ::
|%
++  deft-apes                                           ::  default servers
  |=  our/ship
  %-  ~(gas in *(set well:gall))
  ^-  (list well:gall)
  =+  myr=(clan:title our)
  ?:  ?=($pawn myr)
    [[%base %hall] [%base %talk] [%base %dojo] ~]
  [[%home %hall] [%home %talk] [%home %dojo] ~]
::
++  deft-fish                                           ::  default connects
  |=  our/ship
  %-  ~(gas in *(set gill:gall))
  ^-  (list gill:gall)
  [[our %talk] [our %dojo] ~]
::
++  make                                           ::  initial part
  |=  our/ship
  ^-  part
  :*  %drum
      %2
      ~                                                 ::  sys
      (deft-fish our)                                   ::  eel
      (deft-apes our)                                   ::  ray
      ~                                                 ::  fur
      ~                                                 ::  bin
  ==                                                    ::
::
::
++  en-gill                                           ::  gill to wire
  |=  gyl/gill:gall
  ^-  wire
  [%drum %phat (scot %p p.gyl) q.gyl ~]
::
++  de-gill                                           ::  gill from wire
  |=  way/wire  ^-  gill:gall
  ?>(?=({@ @ $~} way) [(slav %p i.way) i.t.way])
--
::
::::



( run in 1.566 second using v1.01-cache-2.11-cpan-b301d465b3d )