clay: %pass %drip with context, expect and handle errors in +take

This commit is contained in:
Joe Bryan 2023-04-04 15:06:51 -04:00
parent 90970469d0
commit 9ae28a985c

View File

@ -1384,7 +1384,7 @@
`[[care.mood case.mood syd] path.mood cage]:[u.res syd=syd] `[[care.mood case.mood syd] path.mood cage]:[u.res syd=syd]
?~ ref ?~ ref
[%give %writ riot] [%give %writ riot]
[%slip %b %drip !>([%writ riot])] [%pass /drip %b %drip !>([%writ riot])]
:: ::
++ case-to-date ++ case-to-date
|= =case |= =case
@ -3781,7 +3781,7 @@
(~(run in moods) |=(m=mood [care.m path.m])) (~(run in moods) |=(m=mood [care.m path.m]))
=/ gift [%wris cas res] =/ gift [%wris cas res]
?: ?=(^ ref) ?: ?=(^ ref)
[%slip %b %drip !>(gift)] [%pass /drip %b %drip !>(gift)] :: XX s/b [%behn %wris ...] in $sign?
[%give gift] [%give gift]
?> ?=([* ~ ~] res) ?> ?=([* ~ ~] res)
:_ ~ :_ ~
@ -5753,7 +5753,25 @@
|= [tea=wire hen=duct dud=(unit goof) hin=sign] |= [tea=wire hen=duct dud=(unit goof) hin=sign]
^+ [*(list move) ..^$] ^+ [*(list move) ..^$]
?^ dud ?^ dud
~|(%clay-take-dud (mean tang.u.dud)) ?+ tea
~|(%clay-take-dud (mean tang.u.dud))
::
[%drip ~]
%. [~ ..^$]
%- slog
^- tang
:* 'clay: drip fail'
[%rose [": " "" ""] 'bail' mote.u.dud ~]
tang.u.dud
==
==
::
:: pseudo %slip on %drip
::
?: ?=([%drip ~] tea)
?> ?=([?(%behn %clay) ?(%writ %wris) *] hin)
[[`move`[hen %give +.hin] ~] ..^$]
::
?: ?=([%lu %load *] tea) ?: ?=([%lu %load *] tea)
?> ?=(%unto +<.hin) ?> ?=(%unto +<.hin)
?> ?=(%poke-ack -.p.hin) ?> ?=(%poke-ack -.p.hin)
@ -5909,7 +5927,7 @@
~(tap in ducts) ~(tap in ducts)
=/ cancel-moves=(list move) =/ cancel-moves=(list move)
%+ turn cancel-ducts %+ turn cancel-ducts
|=(=duct [duct %slip %b %drip !>([%writ ~])]) |=(=duct [duct %pass /drip %b %drip !>([%writ ~])])
:: delete local state of foreign desk :: delete local state of foreign desk
:: ::
=. hoy.ruf (~(del by hoy.ruf) who) =. hoy.ruf (~(del by hoy.ruf) who)