chiark / gitweb /
Ian Jackson [Sun, 1 May 2022 20:13:04 +0000 (21:13 +0100)]
apitest: updates: handle Delete
We blank out the info in the slot. That's probably the best we can do
with the current data model.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 1 May 2022 20:08:58 +0000 (21:08 +0100)]
at-currency: Rename variables
This was getting quite confusing. I think this scheme is less so.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 1 May 2022 20:03:27 +0000 (21:03 +0100)]
at-currency: More test
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 1 May 2022 20:02:41 +0000 (21:02 +0100)]
apitest: updates: Recorded: Do not overwrite with nulls
Some of these fields are Option, and if None, should nto overwrite
existing data.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 1 May 2022 19:49:35 +0000 (20:49 +0100)]
at-currency: Add spaces in desc patterns
We don't want to match numbers which happen to end with our pattern!
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 1 May 2022 19:48:26 +0000 (20:48 +0100)]
at-currency: Break out PieceInfo::assert_desc_contains
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 1 May 2022 19:36:30 +0000 (20:36 +0100)]
at-currency: rename bn to bn1
These are being taken in sequence.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 1 May 2022 19:30:23 +0000 (20:30 +0100)]
Replace make_svg_defs with render
This now demonstrates that there aren't any more svg generation sites
that forget to propagate a possibly-changed desc.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 1 May 2022 18:54:09 +0000 (19:54 +0100)]
at-currency: Check that descriptions (ie, qts) change
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 1 May 2022 18:47:55 +0000 (19:47 +0100)]
Properly update desc in Recorded updates
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 1 May 2022 18:44:10 +0000 (19:44 +0100)]
at-currency: Use find_by_desc_glob
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 1 May 2022 18:34:46 +0000 (19:34 +0100)]
at-currency: Use currency symbol to find in desc
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 1 May 2022 18:28:28 +0000 (19:28 +0100)]
script: Demonstrate that we can use the desc in a log message
We can now improve many more messages, but I have other fish to fry ATM.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 1 May 2022 18:23:00 +0000 (19:23 +0100)]
Correct sense of pin/unpin log message
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 1 May 2022 18:17:38 +0000 (19:17 +0100)]
Provide desc even in piece updates, and note in script.ts
This has always been provided, properly occulted, during session load,
but not provided in updates. And all this time I have been writing
JS-generated log messages under the assumption that the JS can't
describe pieces.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 1 May 2022 18:00:47 +0000 (19:00 +0100)]
at-currency: Use synchu to synchronise, to update a_pieces
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 1 May 2022 18:08:49 +0000 (19:08 +0100)]
apitest: updates: implement MoveQuiet
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 1 May 2022 18:08:29 +0000 (19:08 +0100)]
apitest: updates: implement Insert
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 1 May 2022 18:08:10 +0000 (19:08 +0100)]
apitest: updates: move p unwraps
So that we can do Insert
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 1 May 2022 18:02:24 +0000 (19:02 +0100)]
apitest: updates: drop a dbg and the parameter it uses
I'm not sure why nick is passed here. Whatever.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 1 May 2022 18:01:07 +0000 (19:01 +0100)]
apitest: updates: reorder generics to match argument order
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 1 May 2022 17:51:07 +0000 (18:51 +0100)]
apitest: updates: panic on unknown updates
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 1 May 2022 17:49:55 +0000 (18:49 +0100)]
apitest: updates: explicitly ignore Log
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 1 May 2022 17:49:20 +0000 (18:49 +0100)]
apitest: updates: explicitly ignore various other updates
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 1 May 2022 17:48:08 +0000 (18:48 +0100)]
apitest: updates: explicitly ignore SetTable*
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 1 May 2022 17:47:23 +0000 (18:47 +0100)]
apitest: updates: handle RecordedUnpredictable
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 1 May 2022 17:46:08 +0000 (18:46 +0100)]
apitest: updates: explicitly ignore MoveHist*
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 1 May 2022 17:45:25 +0000 (18:45 +0100)]
apitest: updates: handle Image
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 1 May 2022 17:43:45 +0000 (18:43 +0100)]
apitest: Introduce and use JsV extension extend
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 1 May 2022 17:33:16 +0000 (18:33 +0100)]
apitest: updates: Always call findp
This makes the code smaller.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 1 May 2022 17:32:24 +0000 (18:32 +0100)]
apitest: updates: Refactor findp again
I keep shilly-shallying. I think I want this to be called all the time.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 1 May 2022 17:23:41 +0000 (18:23 +0100)]
apitest: Add a comment about what PieceInfo<JsV> means
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 1 May 2022 17:22:13 +0000 (18:22 +0100)]
apitest: updatess: Implement Recorded
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 1 May 2022 17:21:55 +0000 (18:21 +0100)]
apitest: updatess: Expect to find the pieces we are updating
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 1 May 2022 17:21:04 +0000 (18:21 +0100)]
apitest: Break out findp
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 1 May 2022 17:20:02 +0000 (18:20 +0100)]
apitest: Introduce and use JsV extension set
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 1 May 2022 16:03:24 +0000 (17:03 +0100)]
apitest: fold lines longer
Mostly they don't fold now.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 1 May 2022 16:03:11 +0000 (17:03 +0100)]
apitest: Refactor to make room for handling more piece ops
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 1 May 2022 16:02:58 +0000 (17:02 +0100)]
apitest: Add a bit of logging
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 1 May 2022 14:39:48 +0000 (15:39 +0100)]
at-currency: wip
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 1 May 2022 13:46:28 +0000 (14:46 +0100)]
currency: Fix the log message
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 1 May 2022 13:43:04 +0000 (14:43 +0100)]
fastsplit_delete: Implement, and use in currency
Amazingly, this seems to work at least in my basic ad-hoc test.
The log message needs a little work.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 1 May 2022 13:39:09 +0000 (14:39 +0100)]
held_change_hook: Pass some more arguments
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 1 May 2022 12:02:31 +0000 (13:02 +0100)]
ToReculculate: Slightly improve docs and formatting of with
This was a bit confusing at first.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 1 May 2022 11:59:01 +0000 (12:59 +0100)]
ToRecalculate: Refactor implement methods
These are more convenient now, and the authorisation trickery is
now where we can more clearly justify it.
Acked-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 1 May 2022 11:39:26 +0000 (12:39 +0100)]
delete_piece: Plumb PieceUpdateOp, and document re log
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 1 May 2022 11:19:35 +0000 (12:19 +0100)]
delete_piece: Break out into global.rs
fastsplit deletion is going to want this. This may not be in its
final form, particularly because of ToRecalculate, which fastsplit
doesn't have one of yet.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 1 May 2022 11:14:12 +0000 (12:14 +0100)]
rename GOccults from GameOccults
Tried to refer to it as GOccults (without looking it up) and obviously
that's what it ought to be.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 1 May 2022 10:36:44 +0000 (11:36 +0100)]
Remove a pointless function
This seems to just recurse to itself. Deleting it leaves everything
still compiling. How odd.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 1 May 2022 10:35:33 +0000 (11:35 +0100)]
Change many .drain(..) into into_iter()
In Rust 2021 this is more convenient to write. We retain one.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 1 May 2022 10:34:58 +0000 (11:34 +0100)]
Miscellaneous cleanups prompted by clippy
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 1 May 2022 10:15:44 +0000 (11:15 +0100)]
OpOutcomeThunk: replace the other open-coded resolution site
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 1 May 2022 10:13:36 +0000 (11:13 +0100)]
OpOutcomeThunk: change resolve to be method on thunk
The other call site (which will come in a moment) doesn't have a
Result. And this was a bit too cooked anyway.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 1 May 2022 10:08:59 +0000 (11:08 +0100)]
Introduce OpOutcomeThunkGeneric resolve on Result
On the way to getting rid of the other ad-hoc resolution site.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 1 May 2022 10:03:10 +0000 (11:03 +0100)]
Genericise OpOutcomeThunk
So that we can centralise resolution.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 1 May 2022 09:53:26 +0000 (10:53 +0100)]
OpOutcomeThunk: Fix typo in comment
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 1 May 2022 01:38:13 +0000 (02:38 +0100)]
Replace an open-coded into_unprepared call
Found this will looking at this code.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 1 May 2022 01:37:33 +0000 (02:37 +0100)]
Optimise into_unprepared slightly
Prompted by seeing this optimisation at what ought to be a call site
of this method.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 1 May 2022 00:31:56 +0000 (01:31 +0100)]
Introduce OpHookThunk
Currency merge needs this so that it can reborrow ipieces to delete
one of the merged notes.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 1 May 2022 00:12:34 +0000 (01:12 +0100)]
OpOutcomeThunk: Rationalise doc comment
Most of this comment is from earlier thoughts about how to solve the
problme that fastsplit now solves, and much of it wasn't really right.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 1 May 2022 00:10:08 +0000 (01:10 +0100)]
Fix a tiny whitespace error
Noticed in passing.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sat, 30 Apr 2022 23:32:55 +0000 (00:32 +0100)]
script: Allow multiselect of large numbers
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sat, 30 Apr 2022 23:09:12 +0000 (00:09 +0100)]
script: In error handler, use piece_checkconflict_nrda
This arranges that we stop drag if our grab failed for reasons other
than a conflict which is obvious to us. Eg, insufficient currency.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sat, 30 Apr 2022 23:03:25 +0000 (00:03 +0100)]
script: piece_checkconflict_nrda: abolish unused return value
This was always false, and no longer used apparently.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sat, 30 Apr 2022 17:47:21 +0000 (18:47 +0100)]
Introduce and use PieceTraitDowncastFailed error
We want this to be cheap to make - not InternalError which contains a
stack trace - so that we can use downcast_piece in contexts where it's
not an error.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sat, 30 Apr 2022 17:07:10 +0000 (18:07 +0100)]
Introduce and use downcast_piece_fastsplit
Currency wants this.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sat, 30 Apr 2022 15:43:44 +0000 (16:43 +0100)]
Introduce and use PiceTrait downcaste_piece extension methoc
This is more convenient.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sat, 30 Apr 2022 15:32:35 +0000 (16:32 +0100)]
gamestate: Add divider comment
We're going to add more above here, and it's getting big.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sat, 30 Apr 2022 12:28:43 +0000 (13:28 +0100)]
fastsplit: Move Z check from multigrab into fastsplit impl
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sat, 30 Apr 2022 12:24:21 +0000 (13:24 +0100)]
fastsplit: Correct z order
This was back to front.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sat, 30 Apr 2022 12:21:34 +0000 (13:21 +0100)]
Reorganise Z setting into two phases
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sat, 30 Apr 2022 12:21:00 +0000 (13:21 +0100)]
Move op_do_set_z to gamestate
This is preparatory, to reduce diff noise. We're going to change the
way this works in a moment.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sat, 30 Apr 2022 11:05:12 +0000 (12:05 +0100)]
fastsplit: Move a comment to its right place
Some time in the development of this, pre-squash, kthe modperm was
acquired within the infallible closure. But when it was moved,
evidently the comment didn't move with it. Fix that.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sat, 30 Apr 2022 09:58:53 +0000 (10:58 +0100)]
fastsplit: Fix recovery
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sat, 30 Apr 2022 01:24:13 +0000 (02:24 +0100)]
currency: Fix and improve multigrab (splitting) log message
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sat, 30 Apr 2022 01:21:05 +0000 (02:21 +0100)]
multigrab/fastsplit: Plumb ShowUnocculted and &PieceTrait
The implementation doesn't really want PieceRenderingInstructions,
just permission to get at trait objects.
The currency fastsplit implementation callback is going to want to
look at its Banknote so that it can make a nice log message. I think
fastsplit piece impls are entitled access to their concret piece type.
So downcast it, and pass it down the layers.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sat, 30 Apr 2022 01:21:13 +0000 (02:21 +0100)]
PieceTrait: impl Downcast
We're going to want this in a moment.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sat, 30 Apr 2022 12:13:12 +0000 (13:13 +0100)]
currency: Many fixes to splitting
This was quite broken.
* Actually set the value of the new (change) piece.
* Set the value of tghe taken piece correctly.
* Set the WRC so that clients see the taken piece value.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sat, 30 Apr 2022 12:13:07 +0000 (13:13 +0100)]
currency: Move some assignments about
Tidying up. No functional change.
(Was originally part of the next, bugfix, commit.)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sat, 30 Apr 2022 12:10:38 +0000 (13:10 +0100)]
currency: Rename value
Having the two pieces here is confusing. All the variables should say
which piece they are.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Mon, 18 Apr 2022 15:32:20 +0000 (16:32 +0100)]
currency: wip test
So far we test that splitting appears to succeed, but not what the
results look like.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Mon, 18 Apr 2022 23:01:39 +0000 (00:01 +0100)]
currency: Implement op_multigrab and therefore splitting
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
ng
Ian Jackson [Sat, 30 Apr 2022 10:14:23 +0000 (11:14 +0100)]
fastsplit: Implement splitting
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Mon, 25 Apr 2022 22:58:31 +0000 (23:58 +0100)]
currency: Make currency pieces be fastsplit
The actual machinery does all the hard work.
This shouldn't have any overall visible functional change. It just
engages new contraptions during piece creation and load/save, but
right now they shouldn't have any work to do because we don't actually
ever split (or merge) currency.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sat, 30 Apr 2022 10:14:17 +0000 (11:14 +0100)]
fastsplit: Add some imprecations about not dropping FastSplitId
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Wed, 20 Apr 2022 08:40:03 +0000 (09:40 +0100)]
fastsplit: Introduce fastsplit concept
This has all the relevant data structures and support code, but does
not yet implemnet the actual splitting and deleting/merging
operations which will be needed for the piece api op impls.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sat, 30 Apr 2022 11:46:08 +0000 (12:46 +0100)]
Drop an unneeded lifetime argument
This is not needed. (I'm not sure whether I did this because
ambassador didn't like the lifetime argument, or just because I saw it
in passing.)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sat, 23 Apr 2022 19:19:23 +0000 (20:19 +0100)]
ambassador: Introduce dependency and make some traits delegatiable
fastsplit pieces are going to want to delegate everything. Not only
is this a lot of typing, open-coding it risks bugs when new trait
methods are added.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sat, 30 Apr 2022 11:42:01 +0000 (12:42 +0100)]
multigrab: Set the z coordinate
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Wed, 27 Apr 2022 22:13:20 +0000 (23:13 +0100)]
Break out op_do_set_z
We're going to make multigrab do z setting too.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sat, 30 Apr 2022 10:43:45 +0000 (11:43 +0100)]
multigrab: Check that the piece is not held
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Fri, 29 Apr 2022 23:54:02 +0000 (00:54 +0100)]
Have OpOutcomeThunk::Deferrecd take &mut InstanceGuard
That way it can call modify_pieces_not_necessarily_saving_aux, which
the fastsplit_split implementaion wants.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Wed, 27 Apr 2022 22:13:33 +0000 (23:13 +0100)]
api: setz: Avoid an unwrap
Panicking is worse than failing. Spotted this in passing.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Fri, 29 Apr 2022 21:17:10 +0000 (22:17 +0100)]
ModifyingPieces: Provide on-your-own-head constructors, and doc
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Wed, 27 Apr 2022 20:37:17 +0000 (21:37 +0100)]
Document z coordinate sense convention
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Wed, 27 Apr 2022 21:52:01 +0000 (22:52 +0100)]
script: multigrab: swap two if arms
This seems clearer, by putting the usual case first.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Wed, 27 Apr 2022 21:46:17 +0000 (22:46 +0100)]
script: piece_raise: allow overriding the actual implementation
We're going to need to do something else for multigrab.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Fri, 29 Apr 2022 22:49:16 +0000 (23:49 +0100)]
Change type of UnpreparedPreparedUpdates
We're going to want to compose this in an additional place. And all
this Option and None is awkward.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Fri, 29 Apr 2022 23:05:35 +0000 (00:05 +0100)]
Introduce and use PrepareUpdatesBuffer::only_unprepared_with
This saves us writing `if unprepared.len() != 0`. I think that
pattern is asking for a reversed conditional at one random site.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Fri, 29 Apr 2022 22:54:05 +0000 (23:54 +0100)]
Introduce and use methods for applying UnpreparedUpdates
There are quite a few call sites where the nature of an
UnpreparedUpdates is open-coded.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>