Skip to main content

qcode/intrinsics/
mod.rs

1//! Built-in pure intrinsics.
2//!
3//! Each submodule defines one family of intrinsics (their evaluators,
4//! recognizers, simplifiers) and self-registers them with the global registry
5//! via [`register_intrinsic!`](crate::register_intrinsic). The registry
6//! machinery, the [`IntrinsicId`](crate::value::insn::intrinsic::IntrinsicId) handle and the [`Intrinsic`](crate::value::insn::intrinsic::Intrinsic) mnemonic itself
7//! live in [`crate::value::insn`]; this module is purely the catalogue of
8//! concrete intrinsics.
9//!
10//! # Adding an intrinsic
11//!
12//! Add a new `mod` here (e.g. `rotate`), implement its `eval` (and optionally
13//! `recognize` / `simplify`) functions, then `register_intrinsic! { … }` for
14//! each name. The `inventory`-based registry picks it up automatically — no
15//! central table to edit.
16
17mod at;
18mod concat;
19mod enumerate;
20mod insert;
21mod iota;
22mod len;
23mod rotate;
24mod singleton;
25mod splat;
26mod take_while;