ejpcmac/typed_struct
61.0
Adequate · 3 October 2026
736
lines of production code
Elixir
primary language
2
measurements over time
What this system is
This system is the TypedStruct library for Elixir, which provides a domain-specific language for defining structs with enhanced type safety and enforcement capabilities. It supports advanced features such as opaque types, field defaults, and a plugin system that allows users to extend struct behavior at compile time. The project also includes comprehensive tooling for static analysis, testing, and documentation generation to ensure code quality and maintainability.
Features
New plugin system for extending TypedStruct behavior
TypedStruct now includes a plugin interface that allows users to inject custom code at various stages of struct definition. This new capability enables the integration of helpers for all fields or the struct as a whole, such as adding descriptions or modifying field options at compile time. Users can implement callbacks like \init/1\, \field/4\, and \after\_definition/1\ to customize how structs are generated, providing a flexible way to extend the library's functionality without modifying core code.
_lib/typed\struct · high confidence
Behavioural changes
Adopt Nix for development environment and update static analysis configuration
The project now uses Nix to manage the development environment, replacing the previous manual setup instructions. A new \.check.exs\ configuration centralizes static analysis, running the compiler, tests, formatter, and documentation generation only on the last supported Elixir version to avoid compatibility issues in CI. The Credo configuration has been significantly expanded to include more checks and support for monorepo-style directory structures, and the \.gitignore\ has been updated to exclude Nix-specific artifacts like \.direnv/\.
(repo-wide) · high confidence
Major overhaul of the typedstruct DSL with plugin support and submodule generation
The core \TypedStruct\ library has been significantly refactored to support a more flexible and feature-rich domain-specific language. Users can now define structs in a dedicated submodule by passing the \module:\ option to \typedstruct\. The DSL introduces a plugin system, allowing users to register plugins via the \plugin/2\ macro to extend struct behavior. Additionally, the library now supports opaque types via the \opaque: true\ option and provides better control over field enforcement with a global \enforce: true\ option that applies to all fields by default unless overridden. The documentation has also been updated to reflect these new capabilities.
lib · high confidence
Migration to new Config module and test-only watch configuration
The configuration file has been updated to use the modern \import Config\ syntax instead of the deprecated \use Mix.Config\. Additionally, the conditional logic for the \mix\_test\_watch\ application has been changed to apply only in the \:test\ environment, ensuring the console is cleared before each test run, whereas it previously applied to the \:dev\ environment.
config · high confidence
Test coverage
Added tests for the TypedStruct plugin system; Expanded test coverage for TypedStruct macro behavior.
Dependencies
TypedStruct 0.3.0 release with dependency updates and build improvements
TypedStruct has been updated to version 0.3.0, bringing significant dependency upgrades including Credo to 1.6.3, Dialyxir to 1.1.0, and ExDoc to 0.28.0. The project now uses ExCheck for static analysis and has refined its development tooling by moving Credo and Dialyxir to dev-only dependencies, configuring custom PLT paths for CI caching, and adding a helper to append development revision status to version numbers. Documentation generation has been enhanced with additional extras and formatters, while the package description has been updated to better reflect the library's purpose.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 54 → 61 (+6.7)
- Rubric changed (rubric-2026.09.15 → rubric-2026.10.1) — scores are not directly comparable.
Lenses
- Code Health 100 → 100 (+0.0)
- Architecture 69 → 69 (+0.0)
- Maturity 37 → 49 (+12.3)
- Readiness 58 → 61 (+3.0)
- Security 97 → 98 (+0.6)
Resolved (2)
- Documentation: no installation or build instructions (README.md)
- Documentation: no usage examples (README.md)
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
ejpcmac/typed_struct was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 3 October 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 7c26d1654097476ebae9944ba6675a0f3fd21e9d — the exact code this score is about.
- Scored under rubric-2026.10.1 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-8fe32cd45d00.