aiken/crates/aiken-project
KtorZ 858dfccc82
Authorize complete patterns as function args.
This is mainly a syntactic trick/sugar, but it's been pretty annoying
  to me for a while that we can't simply pattern-match/destructure
  single-variant constructors directly from the args list. A classic
  example is when writing property tests:

  ```ak
  test foo(params via both(bytearray(), int())) {
    let (bytes, ix) = params
    ...
  }
  ```

  Now can be replaced simply with:

  ```
  test foo((bytes, ix) via both(bytearray(), int())) {
    ...
  }
  ```

  If feels natural, especially coming from the JavaScript, Haskell or
  Rust worlds and is mostly convenient. Behind the scene, the compiler
  does nothing more than re-writing the AST as the first form, with
  pre-generated arg names. Then, we fully rely on the existing
  type-checking capabilities and thus, works in a seamless way as if we
  were just pattern matching inline.
2024-06-07 15:42:25 +02:00
..
src Authorize complete patterns as function args. 2024-06-07 15:42:25 +02:00
templates Add missing keywords to documentation generator. 2023-10-06 14:46:34 +02:00
Cargo.toml chore: Release 2024-06-06 11:19:34 +02:00
README.md chore: make folder names match crate name 2022-12-21 18:11:07 -05:00
build.rs Move compile-time build info to aiken-project 2023-10-06 14:08:47 +02:00

README.md

Project

This crate encapsulates the code used to manage Aiken projects. See crates/cli for usage.