Skip to content

v0.3.0

Choose a tag to compare

@ryanoneill ryanoneill released this 14 Jan 04:25
· 29 commits to main since this release
250d128

What's New

Enhanced Quality Requirements

Quality blocks now support structured fields for comprehensive NFR specifications:

quality performance "API response time" {
    metric: latency,
    scale: p99,
    target: < 100ms,
    constraint: hard,
    applies_to: action register,
    measurement: per_request,
    under_load: {
        concurrent_users: 1000,
        requests_per_second: 500,
    },
    verified_by: [
        test "load_test_api",
        monitor "datadog_latency",
    ],
}

New fields: scale (p50, p90, p95, p99, p999, mean, median, max, min), constraint (hard/soft), applies_to (action/state/type), measurement (per_request, hourly, daily, etc.), under_load (structured load conditions), verified_by (list of verification methods).

Variant Pattern Matching in is Expressions

The is operator now supports full pattern matching with nested variants:

result is Err(NotFound)
status is Pending(reason)

Previously only simple variant names were supported (e.g., result is Ok).

Dotted Paths in Use Statements

Import statements now support dotted module paths to match module declarations:

module abc.catalog
// ...

// In another file:
use abc.catalog::{Item, Category}

Full Changelog: v0.2.0...v0.3.0