chiark / gitweb /
otter.git
2 years agoshapelib: Break out subst_item_name
Ian Jackson [Sat, 14 May 2022 12:19:42 +0000 (13:19 +0100)]
shapelib: Break out subst_item_name

Magic is going to want this.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agoshapelib: Break out format_item_name
Ian Jackson [Sat, 14 May 2022 10:01:44 +0000 (11:01 +0100)]
shapelib: Break out format_item_name

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agoshapelib: Rework colour substitution
Ian Jackson [Sat, 14 May 2022 11:50:09 +0000 (12:50 +0100)]
shapelib: Rework colour substitution

There were too many repetitions of the variable names etc.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agoshapelib: Fix sort key colour abbrev
Ian Jackson [Sat, 14 May 2022 11:48:36 +0000 (12:48 +0100)]
shapelib: Fix sort key colour abbrev

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agoProvide TomlQuote instead
Ian Jackson [Sat, 14 May 2022 01:05:09 +0000 (02:05 +0100)]
Provide TomlQuote instead

This is slightly better in terms of consing.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agoProvide toml_quote_string
Ian Jackson [Sat, 14 May 2022 00:50:55 +0000 (01:50 +0100)]
Provide toml_quote_string

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agoAdd lazy_regex dependency
Ian Jackson [Fri, 13 May 2022 23:49:17 +0000 (00:49 +0100)]
Add lazy_regex dependency

Sadly we can't use this in spec.rs because it's not compatible with
concat!

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agoshapelib: Break out Catalouge::add_item
Ian Jackson [Fri, 13 May 2022 23:36:25 +0000 (00:36 +0100)]
shapelib: Break out Catalouge::add_item

We're going to want to call this again in add1, I think.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agoshapelib: Break out process_files_entry
Ian Jackson [Fri, 13 May 2022 23:24:41 +0000 (00:24 +0100)]
shapelib: Break out process_files_entry

load_catalogue was getting quite unwieldy.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agoshapelib: Implement Magic catalogue entries
Ian Jackson [Fri, 13 May 2022 22:52:07 +0000 (23:52 +0100)]
shapelib: Implement Magic catalogue entries

But nothing constructs them.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agoshapelib: Remove now-needless type annotation
Ian Jackson [Fri, 13 May 2022 23:04:29 +0000 (00:04 +0100)]
shapelib: Remove now-needless type annotation

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agoshapelib: Introduce CatalogueEntry enum
Ian Jackson [Fri, 13 May 2022 23:01:18 +0000 (00:01 +0100)]
shapelib: Introduce CatalogueEntry enum

Currently it only has one variant, but this gets us the plumbing.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agoshapelib: Split find_then from find_load
Ian Jackson [Fri, 13 May 2022 21:31:55 +0000 (22:31 +0100)]
shapelib: Split find_then from find_load

This is preparatory to making the catalogue capable of holding magic
pieces.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agoshapelib catalogue: Get description from trait
Ian Jackson [Fri, 13 May 2022 23:05:03 +0000 (00:05 +0100)]
shapelib catalogue: Get description from trait

We need to disambiguate this right now because we have a concrete
item here which impl both PieceTrait and InertPieceTrait.

That's going to change later.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agoshapelib catalogue: Get sortkey from trait
Ian Jackson [Fri, 13 May 2022 21:59:58 +0000 (22:59 +0100)]
shapelib catalogue: Get sortkey from trait

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agoshapelib catalogue: Make ItemSpecLoaded and find_load private
Ian Jackson [Fri, 13 May 2022 22:45:21 +0000 (23:45 +0100)]
shapelib catalogue: Make ItemSpecLoaded and find_load private

We're going to make this more complicated.  Let's make it private and
have otterlib use the trait methods.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agodocs: Correct wrong bundle version
Ian Jackson [Fri, 13 May 2022 18:55:29 +0000 (19:55 +0100)]
docs: Correct wrong bundle version

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agodice: d6: Tiny tweaks
Ian Jackson [Thu, 12 May 2022 00:59:25 +0000 (01:59 +0100)]
dice: d6: Tiny tweaks

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agodice: d6: image: Add to edited.toml and demo.toml
Ian Jackson [Mon, 2 May 2022 08:53:31 +0000 (09:53 +0100)]
dice: d6: image: Add to edited.toml and demo.toml

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agodice: d6: image: Put comment at the end
Ian Jackson [Mon, 2 May 2022 08:52:56 +0000 (09:52 +0100)]
dice: d6: image: Put comment at the end

usvg seems to hate it at the start.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agodice: d6: image: Rename output file to match intended recolouring
Ian Jackson [Mon, 2 May 2022 08:52:35 +0000 (09:52 +0100)]
dice: d6: image: Rename output file to match intended recolouring

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agodice: d6: image: wip extraction
Ian Jackson [Sun, 1 May 2022 23:35:37 +0000 (00:35 +0100)]
dice: d6: image: wip extraction

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agodice: d6: Add label to the die part of die.svg
Ian Jackson [Sun, 1 May 2022 22:50:35 +0000 (23:50 +0100)]
dice: d6: Add label to the die part of die.svg

This will let us extract it for use in a shape library.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agoshapelib: Rename OutlineDefnTrait
Ian Jackson [Thu, 12 May 2022 00:51:22 +0000 (01:51 +0100)]
shapelib: Rename OutlineDefnTrait

This is clearer as we have the Enum too.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agomformat 2: Actually implement the outline resizing
Ian Jackson [Thu, 12 May 2022 00:42:37 +0000 (01:42 +0100)]
mformat 2: Actually implement the outline resizing

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agoshapelib: Fix an improperly quoted item in a doc comment
Ian Jackson [Thu, 12 May 2022 00:50:31 +0000 (01:50 +0100)]
shapelib: Fix an improperly quoted item in a doc comment

Without the quotes, rustdoc wants this to be a hyperlink.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agomformat 2: Actually parse the outline properly
Ian Jackson [Wed, 11 May 2022 23:37:15 +0000 (00:37 +0100)]
mformat 2: Actually parse the outline properly

This turns out to be quite hard.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agoambassador: impl_via_ambassador: Make it handle multiple
Ian Jackson [Wed, 11 May 2022 23:05:04 +0000 (00:05 +0100)]
ambassador: impl_via_ambassador: Make it handle multiple

The result is quite nice.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agoambassador: impl_via_ambassador: Put back the type name
Ian Jackson [Wed, 11 May 2022 23:02:31 +0000 (00:02 +0100)]
ambassador: impl_via_ambassador: Put back the type name

IDK what ambassador's body_struct etc. macros might use this for in
the future.  Keeping to the pattern that was in response to my MR
seems wisest ?

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agoambassador: impl_via_ambassador: Introduce and use it once
Ian Jackson [Wed, 11 May 2022 23:01:47 +0000 (00:01 +0100)]
ambassador: impl_via_ambassador: Introduce and use it once

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agoambassador: Remove some empirically-unnecessary arguments etc.
Ian Jackson [Wed, 11 May 2022 22:47:06 +0000 (23:47 +0100)]
ambassador: Remove some empirically-unnecessary arguments etc.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agoambassador: Switch to upstream version of delegation to fn
Ian Jackson [Wed, 11 May 2022 22:44:00 +0000 (23:44 +0100)]
ambassador: Switch to upstream version of delegation to fn

Directly as per:
  https://github.com/hobofan/ambassador/pull/32#issuecomment-1121759145

Quite ugly, I think.  I will try to tidy it up somehow.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agodocs: Fix two Sphinx syntax errors
Ian Jackson [Wed, 11 May 2022 22:33:48 +0000 (23:33 +0100)]
docs: Fix two Sphinx syntax errors

These just cause misrendering, at least in my version, not an error
message.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agoDocument that we need Nightly Rust for the full tests
Ian Jackson [Wed, 11 May 2022 22:33:22 +0000 (23:33 +0100)]
Document that we need Nightly Rust for the full tests

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agomformat 2: Declare provided table and game specs format=2
Ian Jackson [Wed, 11 May 2022 22:23:35 +0000 (23:23 +0100)]
mformat 2: Declare provided table and game specs format=2

This has no functional change, but it sets a good example.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agomformat 2: Insist that builtin libraries have an explicit version
Ian Jackson [Wed, 11 May 2022 20:44:42 +0000 (21:44 +0100)]
mformat 2: Insist that builtin libraries have an explicit version

We don't want to be setting the bad example of a missing `format`, and
of course we don't want to be using format=1 either.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agomformat 2: Convert all builtin libraries
Ian Jackson [Tue, 10 May 2022 21:28:31 +0000 (22:28 +0100)]
mformat 2: Convert all builtin libraries

This mostly involves deleting (enables us to delete) various size
specifications which can be inferred from the SVGs.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agoMaterialsFormatVersionError: Improve messages
Ian Jackson [Wed, 11 May 2022 20:44:36 +0000 (21:44 +0100)]
MaterialsFormatVersionError: Improve messages

Well, I managed to produce these.  But the output was a bit ugly.

I think the stuff in Other about a "reasonable integer" is covered by
the specific strings we pass in the integer conversions, and there's
going to be a possibility of completely different kinds of problem:

Use of a format default in a builtin shape library is going to become
an error.  And we don't want to add a variant for it - that's
overkill.  So we'll reuse Other, and this message is not right.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agomformat 2: Implement the new size handling
Ian Jackson [Sat, 7 May 2022 11:38:53 +0000 (12:38 +0100)]
mformat 2: Implement the new size handling

As documented.  This is a much less confusing approach and doesn't
involve recapitulating the SVG's size, which Otter now knows.

It is easier to provide a complete reimplementation than to refactor
and reuse bits of the old.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agoshapelib: Introduce and use LLE::InGroup
Ian Jackson [Wed, 11 May 2022 22:08:25 +0000 (23:08 +0100)]
shapelib: Introduce and use LLE::InGroup

Otherwise bundle errors are really quite inscrutable.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agoshapelib: Introduce and use LLE::InLibrary
Ian Jackson [Wed, 11 May 2022 20:28:45 +0000 (21:28 +0100)]
shapelib: Introduce and use LLE::InLibrary

Otherwise bundle errors are really quite inscrutable.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
2 years agoimpl Mean for f64
Ian Jackson [Tue, 10 May 2022 20:11:04 +0000 (21:11 +0100)]
impl Mean for f64

We'll want this to calculate middles of SVGs.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
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>