`misses init [--lib] [dir]` scaffolds a new proc-macro crate that uses
misses as its build toolchain. Two modes are supported:
Binary mode (default):
The .mrs source files live in src/macros/ and are compiled to
$OUT_DIR at build time via a generated build.rs. The generated
Rust code is never committed — users must have misses installed
to build from source.
Library mode (--lib):
The generated code is committed to generated/ so downstream users
of the crate need no misses install at all. The .mrs source and
build.rs are still present for the library author, who can
regenerate via `cargo build --features misses-source`. The
misses-source feature makes misses an optional build-dependency
and gates the regeneration path in build.rs with #[cfg(feature)].
The command also teaches `main.rs` a proper subcommand dispatch so
that `misses <file.mrs>` (compile) and `misses init` are cleanly
separated.
https://claude.ai/code/session_01D2g6zGJsBeUEzxBb7AvFDt
- Move .mrs files into misses-compiler/examples/ alongside .rs runners
- Add lib.rs exposing parse/codegen for use by example binaries and main.rs
- Fix parser: #[attr] vs #[a => b] disambiguation (look for => before ])
- Fix parser: `for` keyword in `impl Foo for Bar` no longer triggers spread
(is_spread_for lookahead: must match `for <ident> in $<ident> =>`)
- Add derive_getters.mrs: getter methods via spread iteration
- Add make_id_type.mrs: newtype u64 wrapper with From impls, derive attrs
Run with: cargo run --example hello|derive_builder|declare_table|derive_getters|make_id_type
https://claude.ai/code/session_01Tppkab4eLsL21asHGjQJoF