mirror of
https://github.com/urbit/shrub.git
synced 2024-12-21 18:01:32 +03:00
55 lines
1.0 KiB
Plaintext
55 lines
1.0 KiB
Plaintext
|
/- hood
|
||
|
|_ =diff:hood
|
||
|
++ grad %noun
|
||
|
++ grow
|
||
|
|%
|
||
|
++ noun diff
|
||
|
++ json
|
||
|
=, enjs:format
|
||
|
|^
|
||
|
%+ frond -.diff
|
||
|
?- -.diff
|
||
|
%block (block +.diff)
|
||
|
?(%merge-sunk %merge-fail) (desk-arak-err +.diff)
|
||
|
?(%reset %merge %suspend %revive) (desk-arak +.diff)
|
||
|
==
|
||
|
::
|
||
|
++ block
|
||
|
|= [=desk =arak:hood =weft:hood blockers=(set desk)]
|
||
|
%+ merge (desk-arak desk arak)
|
||
|
%- pairs
|
||
|
:~ weft+(weft:enjs:hood weft)
|
||
|
blockers+a+(turn ~(tap in blockers) (lead %s))
|
||
|
==
|
||
|
::
|
||
|
++ desk-arak
|
||
|
|= [=desk =arak:hood]
|
||
|
%- pairs
|
||
|
:~ desk+s+desk
|
||
|
arak+(arak:enjs:hood arak)
|
||
|
==
|
||
|
::
|
||
|
++ desk-arak-err
|
||
|
|= [=desk =arak:hood =tang]
|
||
|
%+ merge (desk-arak desk arak)
|
||
|
%+ frond %tang
|
||
|
a+(turn tang tank)
|
||
|
::
|
||
|
++ merge
|
||
|
|= [a=^json b=^json]
|
||
|
^- ^json
|
||
|
?> &(?=(%o -.a) ?=(%o -.b))
|
||
|
o+(~(uni by p.a) p.b)
|
||
|
--
|
||
|
--
|
||
|
++ grab
|
||
|
|%
|
||
|
++ noun diff:hood
|
||
|
--
|
||
|
--
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|