Commit graph

79 commits

Author SHA1 Message Date
d2f4ca05b0 simplify the recipes in the common case where only 1 of an input is needed 2025-01-18 21:18:56 -07:00
e7b5e60aae impl std::default::Default for Quantity, simplifies the code a bunch 2025-01-18 21:18:22 -07:00
dd2f41e3cf more functional handling of Quantity 2025-01-18 11:22:05 -07:00
424cbaedf8 include tools & actions when compiling a job 2025-01-18 07:08:14 -07:00
a42031917c WIP: report target recipe inputs better 2025-01-17 23:30:20 -07:00
92ac5497e4 add missing vitamins, minor tweak to peristaltic pump
This compiles, try:
`$ cargo run -- --repo ../modular-recipes/recipes/ peristaltic_pump`
2025-01-17 22:00:05 -07:00
ed5ec61e94 add repo.compile(target) 2025-01-17 21:57:45 -07:00
cd1f922953 update all modular recipes to work with new parser schemas 2025-01-17 20:45:50 -07:00
11e97d3dcb Recipe: make Action an enum with process and print 2025-01-17 20:45:10 -07:00
4890611460 Recipe: Operator is optional 2025-01-17 20:44:58 -07:00
af053c33b7 Recipe: richer Output 2025-01-17 20:44:47 -07:00
f28aeaf321 load all recipes from repo 2025-01-17 20:10:00 -07:00
57b8dae357 move Repo and Recipe into the library 2025-01-17 18:45:39 -07:00
20c49c62a0 give this silly test program a name 2025-01-13 00:15:27 -07:00
d3b6350894 more comments 2025-01-13 00:14:24 -07:00
d71c4b015a add some comments 2025-01-13 00:11:14 -07:00
dd4961c6e7 git ignore the build directory 2025-01-12 23:49:20 -07:00
b8029db9a9 help serde disambiguate between numeric quantities and "freeform string"
I don't love this, but i couldn't figure out how to tell TOML's
Deserialize to accept an enum of a usize or a string for `quantity`.
2025-01-12 23:49:20 -07:00
d6f3c404b2 peristaltic-pump recipe: action is a Table, not Array 2025-01-12 23:49:20 -07:00
0f50979af2 peristaltic-pump recipe: tweak dependencies
`[dependencies]` is now a Table rather than an Array.

Operators can have more than one skill.
2025-01-12 23:49:20 -07:00
d9df686f1c peristaltic-pump recipe: remove version from inputs
The version is implicitly tracked by the version control of the recipe
file for the input thing.

Or did i misunderstand something here?
2025-01-12 23:49:20 -07:00
2f65e08afc peristaltic-pump recipe: make inputs a Table, not an Array
`[inputs]` is now a TOML Table (a key/value store).  Each input is
represented in the `[inputs]` table by a key/value pair.

The key is a unique name (which also maps to the recipe file for building
that input thing).

The value is another table describing that input, that we'll represent
with an Input struct.
2025-01-12 23:49:20 -07:00
aca1e0715f WIP: start parsing recipes 2025-01-12 23:49:20 -07:00
86bd75b63e fixup: this recipe step only yields one bearing roller assembly 2025-01-12 23:49:20 -07:00
dd1d93b12e move some files around and add test recipes 2025-01-12 22:40:31 -07:00
8fda9c2c3e minimal config file parsing 2025-01-12 22:40:08 -07:00
b4e5967845 try at a more modular recipe architecture.
NOTE: some of this syntax isn't toml i don't think, so this should be
treated more like pseudo-toml
2025-01-11 23:42:48 -07:00
39f3116c13 first attempt at a recipe
Inspect with `tomlq . peristaltic-pump.recipe`.

I don't like how i have to name the intermediate subassemblies.

And the the toml syntax for "array of tables" feels pretty clunky:
<https://toml.io/en/v1.0.0#array-of-tables>
2025-01-11 21:56:24 -07:00
faa0109d5c add initial architecture sketches 2025-01-11 17:29:06 -07:00