chiark / gitweb /
otter.git
4 years agoslotmap: Actually use our branch everywhere
Ian Jackson [Sat, 13 Feb 2021 12:34:23 +0000 (12:34 +0000)]
slotmap: Actually use our branch everywhere

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoRevert "SimpleShape: Move itemname out of common"
Ian Jackson [Sat, 13 Feb 2021 11:05:30 +0000 (11:05 +0000)]
Revert "SimpleShape: Move itemname out of common"

Actually we need to reuse Disc and Square as they are, so we must
do this by hand somehow.

This reverts commit 878aeb46778ef76feea9bc51d0691f37074fcabb.

4 years agoSimpleShape: Move itemname out of common
Ian Jackson [Sat, 13 Feb 2021 11:02:37 +0000 (11:02 +0000)]
SimpleShape: Move itemname out of common

We want Hand not to have an itemname field.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoSimpleShape: Make INVISIBLE_EDGE_SENSITIVE a const
Ian Jackson [Sat, 13 Feb 2021 01:45:55 +0000 (01:45 +0000)]
SimpleShape: Make INVISIBLE_EDGE_SENSITIVE a const

nfc

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoSimpleShape: Allow specifying edge width
Ian Jackson [Sat, 13 Feb 2021 01:44:24 +0000 (01:44 +0000)]
SimpleShape: Allow specifying edge width

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoSimpleShape: svg_piece: Refator to use more write!
Ian Jackson [Sat, 13 Feb 2021 01:28:19 +0000 (01:28 +0000)]
SimpleShape: svg_piece: Refator to use more write!

NFC

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoSimpleShape: svg_piece: Introduce f local
Ian Jackson [Sat, 13 Feb 2021 01:22:01 +0000 (01:22 +0000)]
SimpleShape: svg_piece: Introduce f local

NFC

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agosimple pieces: edge, make clickable have minimum width
Ian Jackson [Sat, 13 Feb 2021 01:13:07 +0000 (01:13 +0000)]
simple pieces: edge, make clickable have minimum width

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agosimple pieces: support edges, fixes
Ian Jackson [Sat, 13 Feb 2021 01:06:09 +0000 (01:06 +0000)]
simple pieces: support edges, fixes

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agosimple pieces: support edges
Ian Jackson [Fri, 12 Feb 2021 23:09:13 +0000 (23:09 +0000)]
simple pieces: support edges

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agobreak out SimpleShape
Ian Jackson [Fri, 12 Feb 2021 23:41:06 +0000 (23:41 +0000)]
break out SimpleShape

NFC

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agosimplify SimplePieceSpec etc.
Ian Jackson [Fri, 12 Feb 2021 23:26:37 +0000 (23:26 +0000)]
simplify SimplePieceSpec etc.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agomake FaceColourSpecs a type in specs
Ian Jackson [Fri, 12 Feb 2021 22:57:40 +0000 (22:57 +0000)]
make FaceColourSpecs a type in specs

NFC

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoRefactor to introduce SimplePieceSpec
Ian Jackson [Fri, 12 Feb 2021 19:13:35 +0000 (19:13 +0000)]
Refactor to introduce SimplePieceSpec

NFC

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoconfig: Drop spurious dbg! logging
Ian Jackson [Sat, 13 Feb 2021 00:06:33 +0000 (00:06 +0000)]
config: Drop spurious dbg! logging

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agofix "make check"
Ian Jackson [Fri, 12 Feb 2021 21:18:08 +0000 (21:18 +0000)]
fix "make check"

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agouse log_did_to_piece_whoby in ungrab nfc
Ian Jackson [Fri, 12 Feb 2021 01:23:38 +0000 (01:23 +0000)]
use log_did_to_piece_whoby in ungrab nfc

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoprovide log_did_to_piece_whoby, nfc
Ian Jackson [Fri, 12 Feb 2021 01:22:50 +0000 (01:22 +0000)]
provide log_did_to_piece_whoby, nfc

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agocall recalculate_occultation in ungrab
Ian Jackson [Fri, 12 Feb 2021 01:24:39 +0000 (01:24 +0000)]
call recalculate_occultation in ungrab

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agohidden: Make recaulculate_occultation take just plain vanilla
Ian Jackson [Fri, 12 Feb 2021 01:17:11 +0000 (01:17 +0000)]
hidden: Make recaulculate_occultation take just plain vanilla

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoapi.rs: Provide ipieces as part of ApiOpArgs
Ian Jackson [Fri, 12 Feb 2021 01:16:25 +0000 (01:16 +0000)]
api.rs: Provide ipieces as part of ApiOpArgs

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agohidden: Provide recalculate_occultation
Ian Jackson [Fri, 12 Feb 2021 01:01:25 +0000 (01:01 +0000)]
hidden: Provide recalculate_occultation

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agohidden: Provide Occultation::in_region()
Ian Jackson [Fri, 12 Feb 2021 00:54:46 +0000 (00:54 +0000)]
hidden: Provide Occultation::in_region()

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agohidden: Add some missing impls
Ian Jackson [Fri, 12 Feb 2021 00:54:29 +0000 (00:54 +0000)]
hidden: Add some missing impls

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agohidden: Use Area
Ian Jackson [Fri, 12 Feb 2021 00:53:56 +0000 (00:53 +0000)]
hidden: Use Area

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoArea: implement .contains()
Ian Jackson [Fri, 12 Feb 2021 00:53:25 +0000 (00:53 +0000)]
Area: implement .contains()

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agohidden: Fix type of PUO::PerPlayer
Ian Jackson [Fri, 12 Feb 2021 00:52:45 +0000 (00:52 +0000)]
hidden: Fix type of PUO::PerPlayer

This is keyed by PlayerId, ie a SecondaryMap

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoutils: Provide OldNew
Ian Jackson [Fri, 12 Feb 2021 00:45:52 +0000 (00:45 +0000)]
utils: Provide OldNew

Will be used by new hidden ocde.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoupdates: Change type aliases POU and PUOs
Ian Jackson [Thu, 11 Feb 2021 19:17:56 +0000 (19:17 +0000)]
updates: Change type aliases POU and PUOs

Now we have aliases for both the singular and plural types

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agohidden: Move Visible into a variant of OccultationKind
Ian Jackson [Thu, 11 Feb 2021 19:07:44 +0000 (19:07 +0000)]
hidden: Move Visible into a variant of OccultationKind

All these Options are very confusing.  This gets rid of an extension
trait too.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agohidden: Occultation data structures
Ian Jackson [Sun, 31 Jan 2021 23:08:52 +0000 (23:08 +0000)]
hidden: Occultation data structures

Nothing really updates or uses these yet.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoArea: impl Eq
Ian Jackson [Mon, 1 Feb 2021 01:57:37 +0000 (01:57 +0000)]
Area: impl Eq

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoprovide Area type
Ian Jackson [Sun, 31 Jan 2021 23:09:24 +0000 (23:09 +0000)]
provide Area type

We are going to want this for occultations.  This doesn't really do
anything yet.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agohidden: per-player id map: Fix to not use _ that way
Ian Jackson [Fri, 12 Feb 2021 00:42:43 +0000 (00:42 +0000)]
hidden: per-player id map: Fix to not use _ that way

This means "may be unused", not "internal", in Rust.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agorework InternalLogicError
Ian Jackson [Thu, 11 Feb 2021 00:07:12 +0000 (00:07 +0000)]
rework InternalLogicError

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoadd backtrace dependency
Ian Jackson [Thu, 11 Feb 2021 00:03:01 +0000 (00:03 +0000)]
add backtrace dependency

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agovisible slotmap keys: Break out impl_for_slotmap_key
Ian Jackson [Mon, 1 Feb 2021 01:19:35 +0000 (01:19 +0000)]
visible slotmap keys: Break out impl_for_slotmap_key

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agovisible slotmap keys: handle null specially
Ian Jackson [Mon, 1 Feb 2021 01:13:18 +0000 (01:13 +0000)]
visible slotmap keys: handle null specially

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoDelete some obsolete commented-out code
Ian Jackson [Mon, 1 Feb 2021 00:51:06 +0000 (00:51 +0000)]
Delete some obsolete commented-out code

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agostyle: MGR and MGI type aliases, etc.
Ian Jackson [Mon, 1 Feb 2021 00:41:40 +0000 (00:41 +0000)]
style: MGR and MGI type aliases, etc.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agostyle: Make commands::* not global, type aliases, etc.
Ian Jackson [Mon, 1 Feb 2021 00:36:12 +0000 (00:36 +0000)]
style: Make commands::* not global, type aliases, etc.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agostyle: Centralise many type aliases
Ian Jackson [Mon, 1 Feb 2021 00:23:03 +0000 (00:23 +0000)]
style: Centralise many type aliases

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agostyle: Remove space before : in zcoord/
Ian Jackson [Mon, 1 Feb 2021 00:12:20 +0000 (00:12 +0000)]
style: Remove space before : in zcoord/

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agostyle: Remove space before : in wdriver*
Ian Jackson [Mon, 1 Feb 2021 00:11:23 +0000 (00:11 +0000)]
style: Remove space before : in wdriver*

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agostyle: Remove space before :, etc., in src/*.rs
Ian Jackson [Mon, 1 Feb 2021 00:09:48 +0000 (00:09 +0000)]
style: Remove space before :, etc., in src/*.rs

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agostyle: Remove space before : in src/bin/
Ian Jackson [Mon, 1 Feb 2021 00:03:57 +0000 (00:03 +0000)]
style: Remove space before : in src/bin/

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agostyle: Remove space before : in daemon/
Ian Jackson [Mon, 1 Feb 2021 00:02:46 +0000 (00:02 +0000)]
style: Remove space before : in daemon/

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agohidden: Provide stub PieceOccult
Ian Jackson [Sun, 31 Jan 2021 23:07:21 +0000 (23:07 +0000)]
hidden: Provide stub PieceOccult

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agohidden: Add some dividers to the file, etc.
Ian Jackson [Sun, 31 Jan 2021 23:35:21 +0000 (23:35 +0000)]
hidden: Add some dividers to the file, etc.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agohidden: Document the convention about last face
Ian Jackson [Sun, 31 Jan 2021 23:07:32 +0000 (23:07 +0000)]
hidden: Document the convention about last face

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agomovement: Prevent players moving things that they haven't grasped
Ian Jackson [Sun, 31 Jan 2021 23:06:37 +0000 (23:06 +0000)]
movement: Prevent players moving things that they haven't grasped

Also, a todo.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
squash! movement: Prevent players moving things that they haven't grasped

4 years agohidden: a todo
Ian Jackson [Sun, 31 Jan 2021 23:06:14 +0000 (23:06 +0000)]
hidden: a todo

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agohidden: docs: Small note
Ian Jackson [Sun, 31 Jan 2021 23:05:48 +0000 (23:05 +0000)]
hidden: docs: Small note

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agomove our default() into zcoord::misc and use it everywhere
Ian Jackson [Sun, 31 Jan 2021 23:47:41 +0000 (23:47 +0000)]
move our default() into zcoord::misc and use it everywhere

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agouse our default() alias everywhere we can
Ian Jackson [Sun, 31 Jan 2021 23:44:49 +0000 (23:44 +0000)]
use our default() alias everywhere we can

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agohidden: Abolish Lens
Ian Jackson [Sun, 31 Jan 2021 22:43:36 +0000 (22:43 +0000)]
hidden: Abolish Lens

This is never used for anything and can be simply deleted now.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agohidden: Provide and use piece_at_all_occluded in cmdlistener
Ian Jackson [Sun, 31 Jan 2021 22:41:49 +0000 (22:41 +0000)]
hidden: Provide and use piece_at_all_occluded in cmdlistener

We still don't deal with listing (partly) occluded pieces, or taking
them into account for library placement.

In the future this may become more sophisticaed.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agohidden: Abolish longstanding temporary make_angle_visible
Ian Jackson [Sun, 31 Jan 2021 17:14:37 +0000 (17:14 +0000)]
hidden: Abolish longstanding temporary make_angle_visible

This is going to be done directly in hidden, in piece_pri.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agohidden: Trace missing piece map lookups too
Ian Jackson [Sun, 31 Jan 2021 16:45:37 +0000 (16:45 +0000)]
hidden: Trace missing piece map lookups too

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agohidden: Add trace for piece ID mapping
Ian Jackson [Sun, 31 Jan 2021 15:27:10 +0000 (15:27 +0000)]
hidden: Add trace for piece ID mapping

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agohidden: Refactor piece_pri very slightly to break ut face
Ian Jackson [Sun, 31 Jan 2021 15:26:39 +0000 (15:26 +0000)]
hidden: Refactor piece_pri very slightly to break ut face

NFC

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agohidden: Pass PlayerId to new APIs
Ian Jackson [Sun, 31 Jan 2021 15:26:14 +0000 (15:26 +0000)]
hidden: Pass PlayerId to new APIs

We want this for debug logging right now, but we'll surely want it for
actual processing when we implement all this.

NFC.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agohidden: Use new PieceRenderInstructions and svg massage APIs
Ian Jackson [Sun, 31 Jan 2021 21:51:03 +0000 (21:51 +0000)]
hidden: Use new PieceRenderInstructions and svg massage APIs

In general terms:
 * When we need a PieceRenderInstructions get it from piece_pri
   (including from gs.occults) rather than from a Lens.
 * Delete the methods from Lens (and the dummy make_pieceid_visible
   function) so we are sure they aren't used.
 * Use the new massage_prep_piecestate function rather than the
   method on Lens.
 * Consequential changes, including providing mutable gpl in one
   placea, and adding/removing _ prefixes for expectedly used/unsued
   variables.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agohidden: New PieceRenderInstructions etc. API
Ian Jackson [Sun, 31 Jan 2021 18:48:52 +0000 (18:48 +0000)]
hidden: New PieceRenderInstructions etc. API

This is how things are going to be.  We need to call these everywhere,
and make them do something.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agohidden prep: Make pri an argument to piece_update_player
Ian Jackson [Sun, 31 Jan 2021 21:50:36 +0000 (21:50 +0000)]
hidden prep: Make pri an argument to piece_update_player

This is where it's going to want to be in a moment.  NFC.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agohidden prep: api_wrest: Reorganise borrows
Ian Jackson [Sun, 31 Jan 2021 21:18:48 +0000 (21:18 +0000)]
hidden prep: api_wrest: Reorganise borrows

 * Borrow gs.players separately.
 * Borrow gpl mut.
 * Change the order of things.

We'll want this in a moment.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agohidden prep: api_wrest: Move was formatting earlier
Ian Jackson [Sun, 31 Jan 2021 21:11:18 +0000 (21:11 +0000)]
hidden prep: api_wrest: Move was formatting earlier

We want to drop the borrow on gs.players.get(was) because we will want
a mut borrow of gs.players soon.

NFC

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agohidden prep: Pass GameOccults to log_did_to_piece
Ian Jackson [Sun, 31 Jan 2021 12:26:15 +0000 (12:26 +0000)]
hidden prep: Pass GameOccults to log_did_to_piece

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agohidden prep: Provide GameOccults in GameState
Ian Jackson [Sun, 31 Jan 2021 18:48:43 +0000 (18:48 +0000)]
hidden prep: Provide GameOccults in GameState

This is currently empty and unused.  It's a placeholder which we are
going to plumb through everywhere.

NFC but breaks the savefile format.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agohidden prep: Pass &mut GPlayerState to log_did_to_piece
Ian Jackson [Sun, 31 Jan 2021 12:23:12 +0000 (12:23 +0000)]
hidden prep: Pass &mut GPlayerState to log_did_to_piece

Piece id conversion is going to possibly need to update the map in
gpl.

NFC.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agodaemon: wip: add a todo relating to PieceGone
Ian Jackson [Sat, 30 Jan 2021 23:50:24 +0000 (23:50 +0000)]
daemon: wip: add a todo relating to PieceGone

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agohidden: wip a new Lens placeholder
Ian Jackson [Sat, 30 Jan 2021 23:13:41 +0000 (23:13 +0000)]
hidden: wip a new Lens placeholder

(Actually, we changed our mind about this and it was never used.)

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agohidden: Declare new status of Lens
Ian Jackson [Sat, 30 Jan 2021 23:04:51 +0000 (23:04 +0000)]
hidden: Declare new status of Lens

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agocargo: Update to our slotmap MR git branch
Ian Jackson [Sat, 30 Jan 2021 01:58:03 +0000 (01:58 +0000)]
cargo: Update to our slotmap MR git branch

This does not seem to show up in the lockfile.  Odd.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agohidden: Provide per-player id map
Ian Jackson [Sat, 30 Jan 2021 23:06:44 +0000 (23:06 +0000)]
hidden: Provide per-player id map

Not used yet...

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agohidden: wip per-player id map
Ian Jackson [Sat, 30 Jan 2021 22:36:41 +0000 (22:36 +0000)]
hidden: wip per-player id map

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoUse local slotmap for VacantEntry::remove_stale_entry
Ian Jackson [Sat, 16 Jan 2021 12:10:57 +0000 (12:10 +0000)]
Use local slotmap for VacantEntry::remove_stale_entry

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agohidden prep: Do not make PieceUpdateOps Clone
Ian Jackson [Sat, 30 Jan 2021 22:09:24 +0000 (22:09 +0000)]
hidden prep: Do not make PieceUpdateOps Clone

Tbis is not a good idea and not needed.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agohidden prep: Allow api updates to be per-player
Ian Jackson [Sat, 30 Jan 2021 22:08:59 +0000 (22:08 +0000)]
hidden prep: Allow api updates to be per-player

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agohidden prep: Allow prepared updates to be per-player
Ian Jackson [Sat, 30 Jan 2021 21:58:01 +0000 (21:58 +0000)]
hidden prep: Allow prepared updates to be per-player

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agohidden prep: Add a few missing Clone/Copy
Ian Jackson [Sat, 30 Jan 2021 21:55:18 +0000 (21:55 +0000)]
hidden prep: Add a few missing Clone/Copy

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agohidden prep: Per-player TransmitUpdateEntry can be None
Ian Jackson [Sat, 30 Jan 2021 21:20:13 +0000 (21:20 +0000)]
hidden prep: Per-player TransmitUpdateEntry can be None

NFC.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agohidden prep: Pass PlayerId through TransmitUpdateEntry generation
Ian Jackson [Sat, 30 Jan 2021 21:13:08 +0000 (21:13 +0000)]
hidden prep: Pass PlayerId through TransmitUpdateEntry generation

NFC.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agohidden prep: Pass PUO to piece_update_fallible
Ian Jackson [Sat, 30 Jan 2021 15:03:53 +0000 (15:03 +0000)]
hidden prep: Pass PUO to piece_update_fallible

No functional change.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agohidden prep: Reorganise PieceUpdateFromOp
Ian Jackson [Sat, 30 Jan 2021 12:11:33 +0000 (12:11 +0000)]
hidden prep: Reorganise PieceUpdateFromOp

We are going to want to allow an op to give different answers to
different clients.  The representation from an op is going to be
either basically what we have now, or a version where the
PieceUpdateOp is different for each player.

Prepare for this with some struct and type shuffling.  We laave a
convenience Into impl to allow ops to easily handle the simple case.

No functional change.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agohidden prep: Pass player to json_len() methods
Ian Jackson [Sat, 30 Jan 2021 11:12:55 +0000 (11:12 +0000)]
hidden prep: Pass player to json_len() methods

NFC right now.  We are going to want this later.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agohidden: wip notes/plans, found
Ian Jackson [Sun, 31 Jan 2021 11:29:53 +0000 (11:29 +0000)]
hidden: wip notes/plans, found

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agohidden: wip notes/plans
Ian Jackson [Tue, 19 Jan 2021 20:05:53 +0000 (20:05 +0000)]
hidden: wip notes/plans

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agohidden: wip notes/plans, found
Ian Jackson [Sun, 17 Jan 2021 22:01:52 +0000 (22:01 +0000)]
hidden: wip notes/plans, found

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoconfig: Allow OTTER_LOG to partially override config
Ian Jackson [Sun, 31 Jan 2021 16:47:57 +0000 (16:47 +0000)]
config: Allow OTTER_LOG to partially override config

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoutils: Provide toml_merge
Ian Jackson [Sun, 31 Jan 2021 16:45:43 +0000 (16:45 +0000)]
utils: Provide toml_merge

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoconfig: Allow OTTER_LOG to (completely) override config
Ian Jackson [Sun, 31 Jan 2021 16:45:06 +0000 (16:45 +0000)]
config: Allow OTTER_LOG to (completely) override config

If the env var is supplied and results in a nonempty log spec, we
replace the log config completely.

This is quite a lot of faff because no-one likes to give us the right
interfaces.  In particular flexi_logger wants to give and receive
(byte) strings.

This is not the final state; we want to merge them, really.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agotoml-de: Provide from_slice
Ian Jackson [Sun, 31 Jan 2021 16:45:26 +0000 (16:45 +0000)]
toml-de: Provide from_slice

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoconfig: Refactor log setup into own block
Ian Jackson [Sun, 31 Jan 2021 15:57:31 +0000 (15:57 +0000)]
config: Refactor log setup into own block

We'll add stuff in a moment that modifies log while it's still a
`Table` rather than a `Value`.

NFC.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agodaemon: api route macros: tolerate attrs on structs
Ian Jackson [Sun, 31 Jan 2021 00:48:35 +0000 (00:48 +0000)]
daemon: api route macros: tolerate attrs on structs

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agodaemon: use macro for all api routes
Ian Jackson [Sun, 31 Jan 2021 00:37:38 +0000 (00:37 +0000)]
daemon: use macro for all api routes

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agodaemon: wip macro for api routes
Ian Jackson [Sun, 31 Jan 2021 00:11:10 +0000 (00:11 +0000)]
daemon: wip macro for api routes

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agodaemon: Fix many errors (OER rather than OE)
Ian Jackson [Sat, 30 Jan 2021 23:46:14 +0000 (23:46 +0000)]
daemon: Fix many errors (OER rather than OE)

Firstly, all these functions shuuld throw OER which is the thing which
implements the Rocket Responder trait, so that the error actually goes
back to the client.

Secondly, they all need ?.  Without that, these functions all always
succeed and always return Result::Ok(some Result<, OE[R]>).
Surprisingly this is accepted, because Result<> impl Responder
and apparently Result<Result<..>> does too!

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoRemove a space
Ian Jackson [Sat, 30 Jan 2021 14:58:15 +0000 (14:58 +0000)]
Remove a space

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agocargo: Update to lazy_init 0.5
Ian Jackson [Sat, 30 Jan 2021 14:43:19 +0000 (14:43 +0000)]
cargo: Update to lazy_init 0.5

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>