chiark / gitweb /
otter.git
2 years agomformat 1: Drop the size parameter from load_mf1
Ian Jackson [Tue, 10 May 2022 19:50:01 +0000 (20:50 +0100)]
mformat 1: Drop the size parameter from load_mf1

This was introduced in
  size handling: Plumb svg size through to OutlineDefn
and it seemed a good idea at the time.  But when I wrote that I hadn't
decided that these entrypoints would be renamed and kept, rather than
start to contain conditionals.

The mf1 versions can't depend on the size, since in format 1 the SVG's
actual size wasn't used.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agomformat 2: Provide OutlineDefn::load which takes an explicit size
Ian Jackson [Tue, 10 May 2022 19:44:25 +0000 (20:44 +0100)]
mformat 2: Provide OutlineDefn::load which takes an explicit size

For circles we no longer insist on width and height being equal (in
fact, insist on only being provided with one number), as we did for
mformat 1.  Rather we use the maximum of the two dimensions, for both.
As documented.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agoshapelib: outlines: Fold get* into load_mf1
Ian Jackson [Tue, 10 May 2022 19:37:12 +0000 (20:37 +0100)]
shapelib: outlines: Fold get* into load_mf1

Now that we are doing checking by loading with a dummy size, and the
separate check methods are gone, the get_mf1 and get_size functions
each only have one call site.

Removing them makes the code simpler.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agomformat 2: Have resolve_square_size return Option
Ian Jackson [Sat, 7 May 2022 11:45:51 +0000 (12:45 +0100)]
mformat 2: Have resolve_square_size return Option

This moves the optional-ness handling into resolve_square_size, and
pushes the error into the call sites.

The mformat 2 callers are going to want to default this, so want an
Option.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agomformat 2: Actually tolerate missing size during deser
Ian Jackson [Wed, 11 May 2022 20:46:22 +0000 (21:46 +0100)]
mformat 2: Actually tolerate missing size during deser

We don't parse this properly yet, but we will.  This bug was found in
testing (with commits further down the branch) but I have rebased it
next to the code that introduces the bug.

Also explain that the weird scaling in GroupData only happens in mf1.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agomformat 2: Deserialise the data that library format 2 needs
Ian Jackson [Sun, 8 May 2022 10:55:52 +0000 (11:55 +0100)]
mformat 2: Deserialise the data that library format 2 needs

Introduce the various enums (including serde(untagged) ones) so that
we can deserialise all of the mf1 and mf2 formats into the same
structure.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agomformat 2: Allow materials_format::Version to contain 2
Ian Jackson [Wed, 11 May 2022 23:12:55 +0000 (00:12 +0100)]
mformat 2: Allow materials_format::Version to contain 2

Nothing changes in the behaviour yet - nothing checks this - so right
now, this format is not functioning as documented.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agomformat 1: Have FaceTransform::from_group_mf1 take the GroupData
Ian Jackson [Mon, 9 May 2022 23:46:35 +0000 (00:46 +0100)]
mformat 1: Have FaceTransform::from_group_mf1 take the GroupData

This gives access to mformat, which is useful for error
reporting (since it allows us to use the standard "can't do that in
this mf version" constructor).

Of course this is an _mf1 function so it doesn't need the actual
value - it could perhaps have made do with a proof token of const
generic type, or something.  But I tried that and it was a palaver.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agomformat 2: Rename various functions to have _mf1
Ian Jackson [Sun, 8 May 2022 11:03:42 +0000 (12:03 +0100)]
mformat 2: Rename various functions to have _mf1

These entrypoints are going to be specific to format 1.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agomformat 2: Document new format
Ian Jackson [Wed, 4 May 2022 23:18:33 +0000 (00:18 +0100)]
mformat 2: Document new format

This is not yet implemented.  Documenting it first will make these
next commits have some sensible context.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agomformat: Provide Incompat, utility functions, LLE variant, etc.
Ian Jackson [Sun, 8 May 2022 11:51:22 +0000 (12:51 +0100)]
mformat: Provide Incompat, utility functions, LLE variant, etc.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agoshapelib: Rename nominal arg to rect from centre
Ian Jackson [Sat, 7 May 2022 12:37:28 +0000 (13:37 +0100)]
shapelib: Rename nominal arg to rect from centre

This is the nominal location, around which the rectangle is
centred.  This makes it clearer exp. for the call sites elsewhere,
where this parameter is just the piece position.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agoshapelib: Implement check() as load() with dummy size
Ian Jackson [Sun, 8 May 2022 11:13:25 +0000 (12:13 +0100)]
shapelib: Implement check() as load() with dummy size

We really want to know that we will be able to call load().  The
purpose is early detection of errors.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agoFix BuiltinLibrary::default_materials_format
Ian Jackson [Wed, 11 May 2022 20:35:19 +0000 (21:35 +0100)]
Fix BuiltinLibrary::default_materials_format

This needs to be 1, for now, since all our libraries are still in
format 1.

This was wrong since it was introduced in
  materials format: Plumb through to load_catalogue
but hasn't mattered because nothing in the shapelib code actually
looks at the format yet.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agoMakefile: Always run miri on nightly
Ian Jackson [Wed, 11 May 2022 22:06:27 +0000 (23:06 +0100)]
Makefile: Always run miri on nightly

It's not stable.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agoshapelib: Break out resolve_square_size
Ian Jackson [Sat, 7 May 2022 11:22:23 +0000 (12:22 +0100)]
shapelib: Break out resolve_square_size

We're going to want to reuse this even more.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agoshapelib: Reorganise shape/outline handling (2)
Ian Jackson [Sun, 8 May 2022 11:08:34 +0000 (12:08 +0100)]
shapelib: Reorganise shape/outline handling (2)

Centralise this in two functiosn now associated with GroupData.

Now there is one place we can put new size and outline handling.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agoshapelib: Reorganise shape/outline handling (1)
Ian Jackson [Sun, 8 May 2022 11:08:30 +0000 (12:08 +0100)]
shapelib: Reorganise shape/outline handling (1)

Rename OutlineCalculable to ShapeCalculable.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agoshapelib::RectShape: Add a note
Ian Jackson [Sat, 7 May 2022 10:54:14 +0000 (11:54 +0100)]
shapelib::RectShape: Add a note

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agoshapelib: Reorder file and introduce sections
Ian Jackson [Sun, 8 May 2022 10:55:55 +0000 (11:55 +0100)]
shapelib: Reorder file and introduce sections

This was getting quite hard to navigate.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agoshapelib: Promote call to group.d.outline.check()
Ian Jackson [Mon, 9 May 2022 18:22:44 +0000 (19:22 +0100)]
shapelib: Promote call to group.d.outline.check()

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agogeometry: Properly publish pos_zip_try_map etc., and use a bit more
Ian Jackson [Sun, 8 May 2022 10:01:31 +0000 (11:01 +0100)]
geometry: Properly publish pos_zip_try_map etc., and use a bit more

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agogeometry: Rename pos_zip_try_map, add infallible pos_zip_map, use
Ian Jackson [Sun, 8 May 2022 09:52:09 +0000 (10:52 +0100)]
geometry: Rename pos_zip_try_map, add infallible pos_zip_map, use

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agogeometry: Introduce some affordances, and add a use case for each
Ian Jackson [Sun, 8 May 2022 09:45:04 +0000 (10:45 +0100)]
geometry: Introduce some affordances, and add a use case for each

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agodocs: Document format compatibility
Ian Jackson [Wed, 4 May 2022 23:18:25 +0000 (00:18 +0100)]
docs: Document format compatibility

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agodocs: Make room for format version in doc of bundle metadata
Ian Jackson [Wed, 4 May 2022 23:03:59 +0000 (00:03 +0100)]
docs: Make room for format version in doc of bundle metadata

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agodocs: Fix formatting of sub-entries in gamespec
Ian Jackson [Wed, 4 May 2022 23:29:32 +0000 (00:29 +0100)]
docs: Fix formatting of sub-entries in gamespec

Re-using the same bullet point symbol confuses Sphinx.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agoMakefile, make-release: Make published version current
Ian Jackson [Thu, 5 May 2022 19:59:18 +0000 (20:59 +0100)]
Makefile, make-release: Make published version current

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agoMakefile: mkdir the version-specific sphinx output dir
Ian Jackson [Thu, 5 May 2022 19:54:48 +0000 (20:54 +0100)]
Makefile: mkdir the version-specific sphinx output dir

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agoMakefile: Break out PUBLISH_DOC_SPHINX_BASE and _TAIL
Ian Jackson [Thu, 5 May 2022 19:25:56 +0000 (20:25 +0100)]
Makefile: Break out PUBLISH_DOC_SPHINX_BASE and _TAIL

We're going to want this so we can mkdir.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agoMakefile, make-release: Publish to unreleased/docs/ by default
Ian Jackson [Thu, 5 May 2022 19:20:52 +0000 (20:20 +0100)]
Makefile, make-release: Publish to unreleased/docs/ by default

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agodocs: Fix wrong information about builtin shape libraries
Ian Jackson [Wed, 4 May 2022 22:46:52 +0000 (23:46 +0100)]
docs: Fix wrong information about builtin shape libraries

shapelib-toml.rs is basically obsolete now - we just haven't
dismantled it yet.  Now this is all in docs/shapelibs.rst.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agodocs: Fix an editing error in dev.md
Ian Jackson [Wed, 4 May 2022 22:46:35 +0000 (23:46 +0100)]
docs: Fix an editing error in dev.md

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agoshapelib: Plumb mformat through to OutlineDefn via GroupData
Ian Jackson [Wed, 4 May 2022 22:36:59 +0000 (23:36 +0100)]
shapelib: Plumb mformat through to OutlineDefn via GroupData

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agoshapelib: Make fields of GroupData private
Ian Jackson [Wed, 4 May 2022 22:34:23 +0000 (23:34 +0100)]
shapelib: Make fields of GroupData private

This was odd.  It compiles with them private, and it's not serde.
I want to add mformat here, which ought not to be pub here I think?
Anyway, I think this pubness was a mistake.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agomaterials format: Read in game specs, but currently ignored
Ian Jackson [Wed, 4 May 2022 22:32:41 +0000 (23:32 +0100)]
materials format: Read in game specs, but currently ignored

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agomaterials format: Plumb through to load_catalogue
Ian Jackson [Wed, 4 May 2022 21:20:47 +0000 (22:20 +0100)]
materials format: Plumb through to load_catalogue

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agomaterials format: Make constants be of type VERSION
Ian Jackson [Wed, 4 May 2022 22:17:34 +0000 (23:17 +0100)]
materials format: Make constants be of type VERSION

This lets them be more easily used in constructors etc.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agomaterials format: Provide try_from_integer
Ian Jackson [Wed, 4 May 2022 21:55:50 +0000 (22:55 +0100)]
materials format: Provide try_from_integer

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agomaterials format: String parsing
Ian Jackson [Wed, 4 May 2022 21:52:24 +0000 (22:52 +0100)]
materials format: String parsing

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agomaterials format: Introduce version type
Ian Jackson [Wed, 4 May 2022 21:20:40 +0000 (22:20 +0100)]
materials format: Introduce version type

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agomain lib.rs: Sort the hyphen imports
Ian Jackson [Wed, 4 May 2022 20:58:37 +0000 (21:58 +0100)]
main lib.rs: Sort the hyphen imports

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agoshapelib: Promote toplevel as table access
Ian Jackson [Wed, 4 May 2022 19:47:12 +0000 (20:47 +0100)]
shapelib: Promote toplevel as table access

We're going to want to get more out of this.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agoSwitch to deriving Deref
Ian Jackson [Wed, 4 May 2022 20:56:19 +0000 (21:56 +0100)]
Switch to deriving Deref

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agoSwitch to deriving Deref
Ian Jackson [Wed, 4 May 2022 20:55:34 +0000 (21:55 +0100)]
Switch to deriving Deref

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agoSwitch to deriving Deref
Ian Jackson [Wed, 4 May 2022 20:54:02 +0000 (21:54 +0100)]
Switch to deriving Deref

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agoSwitch to deriving Deref
Ian Jackson [Wed, 4 May 2022 20:50:51 +0000 (21:50 +0100)]
Switch to deriving Deref

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agoSwitch to deriving Deref
Ian Jackson [Wed, 4 May 2022 20:50:19 +0000 (21:50 +0100)]
Switch to deriving Deref

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agoSwitch to deriving Deref
Ian Jackson [Wed, 4 May 2022 20:50:15 +0000 (21:50 +0100)]
Switch to deriving Deref

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agoSwitch to deriving Deref
Ian Jackson [Wed, 4 May 2022 20:47:18 +0000 (21:47 +0100)]
Switch to deriving Deref

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agoSwitch to deriving Deref
Ian Jackson [Wed, 4 May 2022 20:42:13 +0000 (21:42 +0100)]
Switch to deriving Deref

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agoSwitch to deriving Deref
Ian Jackson [Wed, 4 May 2022 20:40:19 +0000 (21:40 +0100)]
Switch to deriving Deref

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agoFix doc comment order
Ian Jackson [Wed, 4 May 2022 20:41:52 +0000 (21:41 +0100)]
Fix doc comment order

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agoshapelib: Rename Catalogue from Contents
Ian Jackson [Wed, 4 May 2022 19:43:24 +0000 (20:43 +0100)]
shapelib: Rename Catalogue from Contents

The old name was vague and confusing.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agosize handling: Centralise into Contents::load_image
Ian Jackson [Wed, 4 May 2022 19:03:47 +0000 (20:03 +0100)]
size handling: Centralise into Contents::load_image

This was duplicated code.  Now there is only one place that calls
OutlineTrait.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agosize handling: Make OutlineOccultable return type Copy
Ian Jackson [Wed, 4 May 2022 19:08:52 +0000 (20:08 +0100)]
size handling: Make OutlineOccultable return type Copy

It is.  Declare it, so we can reuse it nicely.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agoshapelib: Rename ImageLoaded
Ian Jackson [Wed, 4 May 2022 18:57:26 +0000 (19:57 +0100)]
shapelib: Rename ImageLoaded

From OccInertLoaded.  We are going to make this the return time from
load_image (previously, load_svg).

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agosize handling: Rename OutlineCalculable::err_mapper
Ian Jackson [Wed, 4 May 2022 18:53:44 +0000 (19:53 +0100)]
size handling: Rename OutlineCalculable::err_mapper

I think this is a less confusing name.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agoshapelib: Tidy a tiny bit of formatting
Ian Jackson [Wed, 4 May 2022 18:52:38 +0000 (19:52 +0100)]
shapelib: Tidy a tiny bit of formatting

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agosize handling: Sort out outline trait error handling
Ian Jackson [Wed, 4 May 2022 18:51:14 +0000 (19:51 +0100)]
size handling: Sort out outline trait error handling

Instead of the `ought` function which can be applied anywhere, use the
OutlineCalculable proof token to map the error at the trait call site.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agosize handling: Drop From<Outline> for OutlineCalculable
Ian Jackson [Wed, 4 May 2022 18:37:03 +0000 (19:37 +0100)]
size handling: Drop From<Outline> for OutlineCalculable

We don't want this, because (in the new code structure) it could only
exist if we somehow loaded an SVG, calculated its outline, threw the
outline away, and then wanted to recalculate it.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agosize handling: Plumb svg size through to OutlineDefn
Ian Jackson [Tue, 3 May 2022 00:29:27 +0000 (01:29 +0100)]
size handling: Plumb svg size through to OutlineDefn

2 years agosize handling: Postpone outline & xform calculations until svg load
Ian Jackson [Tue, 3 May 2022 19:15:49 +0000 (20:15 +0100)]
size handling: Postpone outline & xform calculations until svg load

We move the outline and xform out of the catalogue, which instead gets
a proof token showing that we did check the outline definition.

This will allow them to depend on the size read from the svg.

2 years agosize handling: Introduce OccInertLoaded
Ian Jackson [Tue, 3 May 2022 19:59:29 +0000 (20:59 +0100)]
size handling: Introduce OccInertLoaded

This is going to contain size information.

No functional change yet.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agoutils: svg_parse_size: Take &HtmlStr, not &str
Ian Jackson [Wed, 4 May 2022 18:25:53 +0000 (19:25 +0100)]
utils: svg_parse_size: Take &HtmlStr, not &str

This is more correct.  And it will be more convenient shortly.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agoRemove some Arcs
Ian Jackson [Tue, 3 May 2022 20:04:53 +0000 (21:04 +0100)]
Remove some Arcs

The one around Html is getting in my way.  These are an optimisation
which is only effective until the first save/load, which seems
useless.

Putting a GoodItemName in an Arc seems overkill.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agoProvide todo function
Ian Jackson [Tue, 3 May 2022 19:10:45 +0000 (20:10 +0100)]
Provide todo function

Using the todo!() macro in fehler-annotated functions generates
annoying dead code warnings.

And, this will fail to build in release mode - yay!

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
3 years agosvg size handling: Obtain transform a bit earlier
Ian Jackson [Mon, 2 May 2022 11:27:59 +0000 (12:27 +0100)]
svg size handling: Obtain transform a bit earlier

It will be convnient to have access to svg_data.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
3 years agosvg size handling: Replace bundles.rs version
Ian Jackson [Mon, 2 May 2022 11:22:56 +0000 (12:22 +0100)]
svg size handling: Replace bundles.rs version

All the good properties of bundles.rs's version are now in the
utils.rs version.  Just call it.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
3 years agosvg size handling: Make the size mandatory
Ian Jackson [Mon, 2 May 2022 10:56:29 +0000 (11:56 +0100)]
svg size handling: Make the size mandatory

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
3 years agosvg size handling: Introduce SVGWidthOrHeight
Ian Jackson [Mon, 2 May 2022 10:58:36 +0000 (11:58 +0100)]
svg size handling: Introduce SVGWidthOrHeight

This allows us to return errors without cloning.  It also means we
will be able to sensibly report missing attributes when we make the
size mandatory.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
3 years agosvg size handling: SVG is case sensitive
Ian Jackson [Mon, 2 May 2022 10:44:56 +0000 (11:44 +0100)]
svg size handling: SVG is case sensitive

bundles.rs had this right.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
3 years agosvg size handling: Insist on having the SVG element first
Ian Jackson [Mon, 2 May 2022 10:42:36 +0000 (11:42 +0100)]
svg size handling: Insist on having the SVG element first

And restructure the parsing to look like that in bundles.rs.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
3 years agosvg size handling: Insist on having an SVG element
Ian Jackson [Mon, 2 May 2022 10:39:44 +0000 (11:39 +0100)]
svg size handling: Insist on having an SVG element

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
3 years agosvg size handling: Break out tokens as mut iterator
Ian Jackson [Mon, 2 May 2022 10:35:46 +0000 (11:35 +0100)]
svg size handling: Break out tokens as mut iterator

We're going to restructure this to be a bit more like the structure in
bundles.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
3 years agosvg size handling: Rename and move svg_parse_size
Ian Jackson [Mon, 2 May 2022 10:31:43 +0000 (11:31 +0100)]
svg size handling: Rename and move svg_parse_size

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
3 years agoutils: Drop EmptyType
Ian Jackson [Mon, 2 May 2022 10:26:23 +0000 (11:26 +0100)]
utils: Drop EmptyType

It turns out that there already weren't any use sites.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
3 years agoutils: Drop some unused bits
Ian Jackson [Mon, 2 May 2022 10:25:18 +0000 (11:25 +0100)]
utils: Drop some unused bits

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
3 years agoutils: Tidy up and move DigestRead and DigestWrite
Ian Jackson [Mon, 2 May 2022 10:24:13 +0000 (11:24 +0100)]
utils: Tidy up and move DigestRead and DigestWrite

Now this file is more navigable.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
3 years agosvg size handling: Introduce new size parser
Ian Jackson [Mon, 2 May 2022 09:56:57 +0000 (10:56 +0100)]
svg size handling: Introduce new size parser

We want to get the size out of the svg on load, to make the library
spec size attribute optional (and to make things less confusing).
So start by add code to parse size out of an SVG.

But in fact it turns out we have one of these in bundle processing
already.  The need to be combined.  But for now, commit what we have.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
3 years agoFix an error message typo
Ian Jackson [Mon, 2 May 2022 08:53:45 +0000 (09:53 +0100)]
Fix an error message typo

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
3 years agousvg-processor: Be a bit more verbose in error messages
Ian Jackson [Mon, 2 May 2022 08:51:27 +0000 (09:51 +0100)]
usvg-processor: Be a bit more verbose in error messages

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
3 years agocurrency: Example
Ian Jackson [Sun, 1 May 2022 21:45:33 +0000 (22:45 +0100)]
currency: Example

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
3 years agocurrency: Document
Ian Jackson [Sun, 1 May 2022 21:42:26 +0000 (22:42 +0100)]
currency: Document

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
3 years agodice: Document
Ian Jackson [Sun, 1 May 2022 21:22:19 +0000 (22:22 +0100)]
dice: Document

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
3 years agoat-currency: Test merging properly
Ian Jackson [Sun, 1 May 2022 20:15:11 +0000 (21:15 +0100)]
at-currency: Test merging properly

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
3 years agoapitest: updates: handle Delete
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>
3 years agoat-currency: Rename variables
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>
3 years agoat-currency: More test
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>
3 years agoapitest: updates: Recorded: Do not overwrite with nulls
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>
3 years agoat-currency: Add spaces in desc patterns
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>
3 years agoat-currency: Break out PieceInfo::assert_desc_contains
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>
3 years agoat-currency: rename bn to bn1
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>
3 years agoReplace make_svg_defs with render
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>
3 years agoat-currency: Check that descriptions (ie, qts) change
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>
3 years agoProperly update desc in Recorded updates
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>
3 years agoat-currency: Use find_by_desc_glob
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>
3 years agoat-currency: Use currency symbol to find in desc
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>
3 years agoscript: Demonstrate that we can use the desc in a log message
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>
3 years agoCorrect sense of pin/unpin log message
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>