mirror of
https://github.com/urbit/shrub.git
synced 2024-12-22 18:31:44 +03:00
f285c7954e
This lets applications suggest to the client that they should gracefully unsubscribe from the session. Arguably this might be accomplished by %kick-ing the client and then crashing on their subsequent resubscribe, but this requires tracking their sole session id and has less semantic clarity on what's happening.
83 lines
1.8 KiB
Plaintext
83 lines
1.8 KiB
Plaintext
::
|
|
:::: /hoon/effect/sole/mar
|
|
::
|
|
/? 310
|
|
/- sole
|
|
!:
|
|
::
|
|
::::
|
|
::
|
|
=, sole
|
|
=, format
|
|
|%
|
|
++ mar-sole-change :: XX dependency
|
|
|_ cha=sole-change
|
|
++ grow
|
|
|% ++ json
|
|
^- ^json
|
|
=, enjs
|
|
=; edi
|
|
=,(cha (pairs ted+(edi ted) ler+a+~[(numb own.ler) (numb his.ler)] ~))
|
|
|= det=sole-edit
|
|
?- -.det
|
|
%nop [%s 'nop']
|
|
%mor [%a (turn p.det ..$)]
|
|
%del (frond %del (numb p.det))
|
|
%set (frond %set (tape (tufa p.det)))
|
|
%ins (frond %ins (pairs at+(numb p.det) cha+s+(tuft q.det) ~))
|
|
==
|
|
--
|
|
--
|
|
++ wush
|
|
|= [wid=@u tan=tang]
|
|
^- tape
|
|
(of-wall (turn (flop tan) |=(a=tank (of-wall (wash 0^wid a)))))
|
|
::
|
|
++ purge :: discard ++styx style
|
|
|= a=styx ^- tape
|
|
%- zing %+ turn a
|
|
|= a=_?>(?=(^ a) i.a)
|
|
?@(a (trip a) ^$(a q.a))
|
|
--
|
|
::
|
|
|_ sef=sole-effect
|
|
::
|
|
++ grad %noun
|
|
++ grab :: convert from
|
|
|%
|
|
++ noun sole-effect :: clam from %noun
|
|
--
|
|
++ grow
|
|
=, enjs
|
|
|%
|
|
++ noun sef
|
|
++ json
|
|
^- ^json
|
|
?+ -.sef
|
|
~|(unsupported-effect+-.sef !!)
|
|
%mor [%a (turn p.sef |=(a=sole-effect json(sef a)))]
|
|
%err (frond %hop (numb p.sef))
|
|
%txt (frond %txt (tape p.sef))
|
|
%tan (frond %tan (tape (wush 160 p.sef)))
|
|
%det (frond %det json:~(grow mar-sole-change +.sef))
|
|
::
|
|
%pro
|
|
%+ frond %pro
|
|
(pairs vis+b+vis.sef tag+s+tag.sef cad+(tape (purge cad.sef)) ~)
|
|
::
|
|
%tab
|
|
:- %a
|
|
%+ turn p.sef
|
|
|= [=cord =^tank]
|
|
%+ frond %tab
|
|
%- pairs
|
|
:~ match+s+cord
|
|
info+(tape ~(ram re tank))
|
|
==
|
|
::
|
|
?(%bel %clr %nex %bye)
|
|
(frond %act %s -.sef)
|
|
==
|
|
--
|
|
--
|