//! The focus economy of the root chain (specs/chain-economy.md): staked
//! cyberlinks with valence, epochs of a fixed number of blocks, φ* of the
//! staked graph at every boundary, settlement of Δφ⁺ to the stake that
//! caused it, and the subsidy split between miners and the focus pool.
//!
//! Module map (chain-economy §13):
//!
//! - this file: positions, identities (§3.1), the emission split (§6.1),
//!   the mark decay (§5.3) — pure integer functions;
//! - [`wide`]: the 512-bit integers attribution needs (§5.2–§5.5);
//! - [`weights`]: genesis weights (§4.1) and the axon weight `A_pq` (§4.2);
//! - [`focus`]: the canonical focus graph (§4.3) and the φ*/gradient engine
//!   seam (§4.4, §5.1) with the integer reference engine;
//! - [`settle`]: snapshots (§2.4), the three solves and attribution
//!   (§5.1–§5.4), and the settlement step of a block (§5.5–§5.6);
//! - [`run`]: the off-block-path settlement worker and its caches.
//!
//! Integers and fixed point only; nothing here reads a float or a clock.

pub mod focus;
pub mod run;
pub mod vectors;
pub mod settle;
pub mod weights;
pub mod wide;

#[cfg(test)]
mod tests;

use super::params::{DOMAIN_PAYOUT_LEAF, DOMAIN_PAYOUT_NODE, DOMAIN_PHI, FOCUS_MAX_BPS, HWM_KEEP_DEN, HWM_KEEP_NUM};
use super::state::Id;

pub use crate::wallet::tx::{card_id, focus_key, stake_key};

/// `axon(p, q) = hemera(p ‖ q)`, bbg's `axon_id`: a card's `particle`.
pub fn axon_of(p: &Id, q: &Id) -> Id {
    crate::wallet::tx::axon(p, q)
}

/// A position (chain-economy §3.2): one author's stake on one axon. The
/// stake itself is the balance at `stake_key(card)`, not a field.
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub struct Card {
    /// payout owner: the account credited with the position's rewards
    pub owner: Id,
    /// the axon-particle `axon(p, q) = hemera(p ‖ q)`
    pub particle: Id,
    /// the neuron that locked the stake; only it may unlock
    pub author: Id,
    /// `v ∈ {−1, 0, +1}`; fixed while the stake is positive
    pub valence: i8,
    /// height of the last stake increase
    pub since: u64,
}

impl Card {
    /// `σ(c)`: +1 for `v ∈ {0, +1}`, −1 for `v = −1` (§5.2).
    pub fn side(&self) -> i8 {
        side_of(self.valence)
    }

    /// The bbg byte form of the valence, `v + 1 ∈ {0, 1, 2}` (§3.2).
    pub fn valence_byte(&self) -> u8 {
        (self.valence + 1) as u8
    }
}

/// `σ(v)`: the side of the edge a valence pushes.
pub fn side_of(valence: i8) -> i8 {
    if valence < 0 { -1 } else { 1 }
}

/// The high-water marks of one axon, `H⁺` and `H⁻` (§5.3).
#[derive(Clone, Copy, Debug, Default, PartialEq, Eq)]
pub struct Mark {
    pub pos: u64,
    pub neg: u64,
}

impl Mark {
    pub fn side(&self, sigma: i8) -> u64 {
        if sigma < 0 { self.neg } else { self.pos }
    }
}

/// Running economy scalars, journaled with the state: what the coinbase
/// of every block and `/status` read without walking the cards.
#[derive(Clone, Copy, Debug, Default, PartialEq, Eq)]
pub struct Scalars {
    /// `focus_bps(epoch(h) − 1)`: the split in force for the next block (§6.1)
    pub focus_bps: u64,
    /// Σ stake over every card
    pub total_stake: u64,
    /// Σ stake over cards with `v ≠ 0` — `active` of §6.1
    pub active_stake: u64,
    /// the last epoch settled on this chain (0 before the first settlement)
    pub last_settled: u64,
}

impl Scalars {
    pub fn encode(&self) -> [u64; 4] {
        [self.focus_bps, self.total_stake, self.active_stake, self.last_settled]
    }

    pub fn decode(v: [u64; 4]) -> Scalars {
        Scalars { focus_bps: v[0], total_stake: v[1], active_stake: v[2], last_settled: v[3] }
    }
}

fn tagged(tag: &[u8], parts: &[&[u8]]) -> Id {
    let mut buf = Vec::with_capacity(tag.len() + parts.iter().map(|p| p.len()).sum::<usize>());
    buf.extend_from_slice(tag);
    for p in parts {
        buf.extend_from_slice(p);
    }
    *hemera::hash(&buf).as_bytes()
}

/// `hemera(D_PAYOUT_LEAF ‖ card ‖ owner ‖ amount: u64)` (§5.6).
pub fn payout_leaf(card: &Id, owner: &Id, amount: u64) -> Id {
    tagged(DOMAIN_PAYOUT_LEAF, &[card, owner, &amount.to_le_bytes()])
}

/// `hemera(D_PAYOUT_NODE ‖ L ‖ R)` (§5.6).
pub fn payout_node(l: &Id, r: &Id) -> Id {
    tagged(DOMAIN_PAYOUT_NODE, &[l, r])
}

/// Merkle root over payout leaves in the given order (cards ascending,
/// amounts > 0), odd node promoted unchanged; 32 zero bytes when empty.
pub fn payouts_root(leaves: &[Id]) -> Id {
    if leaves.is_empty() {
        return [0; 32];
    }
    let mut level = leaves.to_vec();
    while level.len() > 1 {
        level = level
            .chunks(2)
            .map(|pair| match pair {
                [l, r] => payout_node(l, r),
                [one] => *one,
                _ => unreachable!(),
            })
            .collect();
    }
    level[0]
}

/// `hemera(D_PHI ‖ n: u32 ‖ φ[0]: u64 ‖ … ‖ φ[n−1]: u64)` (§5.6), particles
/// ascending, tru's raw fixed point.
pub fn phi_digest(phi: &[u64]) -> Id {
    let mut buf = Vec::with_capacity(DOMAIN_PHI.len() + 4 + 8 * phi.len());
    buf.extend_from_slice(DOMAIN_PHI);
    buf.extend_from_slice(&(phi.len() as u32).to_le_bytes());
    for v in phi {
        buf.extend_from_slice(&v.to_le_bytes());
    }
    *hemera::hash(&buf).as_bytes()
}

/// Floor integer square root of a u128.
pub fn isqrt(n: u128) -> u128 {
    if n < 2 {
        return n;
    }
    // Newton from a power of two at or above the root: monotone decreasing
    let mut x = 1u128 << (128 - n.leading_zeros()).div_ceil(2);
    loop {
        let y = (x + n / x) / 2;
        if y >= x {
            return x;
        }
        x = y;
    }
}

/// `focus_bps(E) = min(FOCUS_MAX_BPS, isqrt(floor(active · 10^8 / supply)))`
/// (§6.1), u128 inside. `supply = S0 + boundary(E) · SUBSIDY`.
pub fn focus_bps(active: u64, supply: u64) -> u64 {
    if supply == 0 {
        return 0;
    }
    let theta = (active as u128 * 100_000_000) / supply as u128;
    (isqrt(theta) as u64).min(FOCUS_MAX_BPS)
}

/// `cut(h) = floor(SUBSIDY · focus_bps / 10,000)`: the focus pool's share
/// of one block's subsidy (§6.1); the miner keeps `SUBSIDY − cut`.
pub fn cut(subsidy: u64, bps: u64) -> u64 {
    ((subsidy as u128 * bps as u128) / 10_000) as u64
}

/// One epoch of the high-water mark (§5.3): with `M = max(H, S)`,
/// `H' = S + floor((M − S) · 65,410 / 65,536)`.
pub fn decay_mark(h: u64, s: u64) -> u64 {
    let m = h.max(s);
    s + (((m - s) as u128 * HWM_KEEP_NUM as u128) / HWM_KEEP_DEN as u128) as u64
}

Homonyms

warriors/trisha/rs/recursive/mod.rs
neural/trident/tests/support/mod.rs
soft3/crate/src/genesis/mod.rs
neural/trident/src/ir/mod.rs
neural/trident/src/cost/mod.rs
soft3/mir/src/frame/mod.rs
cyb/optica/src/output/mod.rs
neural/trident/src/syntax/mod.rs
neural/trident/src/package/mod.rs
cyb/shell/src/worlds/mod.rs
soft3/glia/run/backend/mod.rs
soft3/nox/rs/patterns/mod.rs
soft3/nox/rs/jets/mod.rs
cyb/optica/src/graph/mod.rs
warriors/trisha/rs/lower/mod.rs
soft3/crate/src/wallet/mod.rs
neural/trident/src/deploy/mod.rs
neural/trident/src/neural/mod.rs
cyb/optica/src/parser/mod.rs
cyb/prysm/system/rs/mod.rs
soft3/glia/run/tokenizer/mod.rs
cyb/optica/src/render/mod.rs
soft3/tru/rs/pass/mod.rs
cyb/optica/src/query/mod.rs
warriors/trisha/rs/cost/mod.rs
soft3/cybergraph/tests/common/mod.rs
neural/trident/src/config/mod.rs
neural/trident/src/ast/mod.rs
neural/trident/src/field/mod.rs
neural/trident/src/import/mod.rs
soft3/tru/rs/model/mod.rs
soft3/mudra/src/proof/mod.rs
cyb/optica/src/scanner/mod.rs
soft3/tru/rs/graph/mod.rs
soft3/glia/run/bench/mod.rs
cyb/prysm/atoms/rs/mod.rs
neural/trident/src/lsp/mod.rs
neural/trident/src/typecheck/mod.rs
soft3/glia/run/core/mod.rs
neural/trident/src/verify/mod.rs
warriors/trisha/rs/neural/mod.rs
soft3/glia/import/loader/mod.rs
cyb/shell/src/shell/mod.rs
soft3/tru/rs/focusing/mod.rs
neural/trident/src/runtime/mod.rs
neural/trident/src/api/mod.rs
cyb/optica/src/server/mod.rs
soft3/mir/src/graph/mod.rs
neural/trident/src/diagnostic/mod.rs
neural/trident/src/cli/mod.rs
soft3/glia/run/arch/mod.rs
cyb/prysm/molecules/rs/mod.rs
soft3/nox/rs/data/mod.rs
soft3/mir/src/bevy/mod.rs
cyb/shell/src/agent/mod.rs
soft3/mir/src/epoch/mod.rs
soft3/glia/run/ir/mod.rs
soft3/crate/src/chain/mod.rs
neural/rs/macros/src/module/mod.rs
cyb/honeycrisp/unimem/tests/image_support/mod.rs
neural/trident/src/ir/tir/mod.rs
neural/trident/src/verify/report/mod.rs
cyb/honeycrisp/acpu/src/vector/mod.rs
warriors/trisha/rs/neural/data/mod.rs
neural/trident/src/package/registry/mod.rs
soft3/glia/run/backend/wgpu/mod.rs
neural/trident/src/neural/training/mod.rs
soft3/zheng/rs/src/sumcheck/mod.rs
neural/trident/src/verify/synthesize/mod.rs
cyb/shell/src/worlds/vault/mod.rs
neural/rs/macros/src/registers/mod.rs
neural/trident/src/neural/model/mod.rs
neural/trident/src/config/resolve/mod.rs
cyb/honeycrisp/acpu/src/sparse/mod.rs
soft3/bbg/rs/src/transition/mod.rs
soft3/radio/iroh-blobs/examples/common/mod.rs
soft3/crate/src/chain/pool/mod.rs
cyb/wysm/crates/wasi/tests/mod.rs
neural/rs/darwin-sys/src/ffi/mod.rs
cyb/honeycrisp/rane/src/mil/mod.rs
neural/trident/src/verify/smt/mod.rs
soft3/glia/run/backend/honeycrisp/mod.rs
soft3/glia/run/arch/decoder/mod.rs
neural/trident/src/verify/solve/mod.rs
cyb/honeycrisp/acpu/src/pulse/mod.rs
soft3/zheng/rs/src/folding/mod.rs
soft3/glia/run/cli/cmd/mod.rs
neural/trident/src/syntax/format/mod.rs
warriors/trisha/rs/neural/inference/mod.rs
cyb/shell/src/worlds/models/mod.rs
neural/trident/src/package/store/mod.rs
cyb/honeycrisp/acpu/src/sync/mod.rs
neural/trident/src/syntax/parser/mod.rs
neural/rs/core/src/fixed_point/mod.rs
warriors/trisha/rs/neural/training/mod.rs
cyb/honeycrisp/aruminium/src/ffi/mod.rs
cyb/shell/src/worlds/sigma/mod.rs
neural/trident/src/verify/sym/mod.rs
soft3/strata/nebu/rs/extension/mod.rs
neural/rs/macros/src/addressed/mod.rs
neural/trident/src/package/hash/mod.rs
soft3/radio/cyber-bao/src/io/mod.rs
neural/trident/src/neural/data/mod.rs
soft3/glia/run/backend/cpu/mod.rs
soft3/radio/iroh-blobs/src/store/mod.rs
soft3/nox/rs/jets/backends/mod.rs
neural/trident/src/syntax/lexer/mod.rs
neural/rs/core/src/bounded/mod.rs
cyb/honeycrisp/aruminium/src/render/mod.rs
neural/trident/src/lsp/semantic/mod.rs
soft3/conformance/rs/src/surfaces/mod.rs
neural/trident/src/neural/inference/mod.rs
neural/eidos/rs/src/tactic_ext/mod.rs
neural/eidos/rs/src/surface/mod.rs
soft3/zheng/rs/src/ccs/mod.rs
neural/trident/src/lsp/util/mod.rs
cyb/wysm/crates/wast/tests/mod.rs
soft3/zheng/rs/src/phi/mod.rs
warriors/trisha/rs/neural/model/mod.rs
neural/trident/src/config/scaffold/mod.rs
neural/trident/src/typecheck/tests/mod.rs
neural/trident/src/ir/tree/mod.rs
soft3/zheng/rs/src/spartan/mod.rs
neural/eidos/rs/src/stdlib/mod.rs
neural/trident/src/api/tests/mod.rs
warriors/trisha/rs/cost/model/mod.rs
cyb/shell/src/worlds/com/mod.rs
cyb/honeycrisp/acpu/src/gemm/mod.rs
cyb/shell/src/worlds/memory/mod.rs
neural/trident/src/verify/equiv/mod.rs
neural/eidos/rs/src/elab/mod.rs
cyb/honeycrisp/acpu/src/numeric/mod.rs
cyb/honeycrisp/acpu/src/probe/mod.rs
soft3/tru/rs/focusing/epoch/mod.rs
cyb/wysm/crates/wasmi/tests/mod.rs
cyb/shell/src/worlds/oracle/mod.rs
neural/rs/rsc/src/lints/mod.rs
cyb/shell/src/worlds/robot/mod.rs
soft3/crate/src/chain/net/mod.rs
soft3/neuron/node/tests/support/mod.rs
cyb/honeycrisp/acpu/src/matrix/mod.rs
neural/trident/src/syntax/grammar/mod.rs
warriors/trisha/rs/cost/stack_verifier/mod.rs
cyb/honeycrisp/acpu/src/field/mod.rs
soft3/crate/src/chain/mine/mod.rs
cyb/shell/src/worlds/body/mod.rs
neural/trident/src/package/manifest/mod.rs
soft3/bbg/rs/src/storage/mod.rs
cyb/honeycrisp/acpu/src/crypto/mod.rs
soft3/crate/src/chain/tests/mod.rs
cyb/evy/forks/bevy_anti_alias/src/contrast_adaptive_sharpening/mod.rs
warriors/trisha/rs/neural/data/tir_graph/mod.rs
cyb/evy/forks/bevy_anti_alias/src/smaa/mod.rs
cyb/wysm/crates/wasmi/src/memory/mod.rs
soft3/strata/jali/wgsl/src/shaders/mod.rs
cyb/wysm/crates/wasmi/src/table/mod.rs
cyb/evy/forks/bevy_pbr/src/decal/mod.rs
cyb/evy/forks/bevy_pbr/src/ssao/mod.rs
cyb/evy/forks/bevy_ecs/src/system/mod.rs
cyb/evy/forks/bevy_render/src/experimental/mod.rs
cyb/evy/forks/bevy_core_pipeline/src/tonemapping/mod.rs
cyb/evy/forks/bevy_ecs/src/entity/mod.rs
cyb/evy/forks/bevy_pbr/src/light_probe/mod.rs
cyb/evy/forks/bevy_post_process/src/motion_blur/mod.rs
cyb/wysm/crates/wasmi/src/engine/mod.rs
cyb/evy/forks/bevy_ecs/src/bundle/mod.rs
cyb/evy/forks/bevy_post_process/src/bloom/mod.rs
cyb/wysm/crates/wasmi/benches/bench/mod.rs
cyb/evy/forks/bevy_pbr/src/ssr/mod.rs
soft3/radio/quinn/quinn/src/runtime/mod.rs
cyb/evy/forks/bevy_ecs/src/error/mod.rs
cyb/evy/forks/bevy_anti_alias/src/dlss/mod.rs
cyb/evy/forks/bevy_render/src/renderer/mod.rs
cyb/wysm/crates/wasmi/src/module/mod.rs
cyb/evy/forks/bevy_sprite_render/src/render/mod.rs
cyb/evy/forks/bevy_ecs/src/reflect/mod.rs
cyb/evy/forks/bevy_core_pipeline/src/experimental/mod.rs
soft3/bbg/rs/src/storage/database/mod.rs
soft3/strata/trop/wgsl/src/shaders/mod.rs
cyb/evy/forks/bevy_render/src/texture/mod.rs
cyb/evy/forks/bevy_core_pipeline/src/fullscreen_vertex_shader/mod.rs
cyb/evy/forks/naga/src/common/mod.rs
cyb/evy/forks/bevy_render/src/batching/mod.rs
cyb/wysm/crates/cli/src/commands/mod.rs
cyb/evy/forks/bevy_anti_alias/src/fxaa/mod.rs
cyb/evy/forks/naga/src/compact/mod.rs
warriors/erga/rs/mine-bench/tests/support/mod.rs
soft3/radio/quinn/quinn-udp/src/cmsg/mod.rs
soft3/glia/run/backend/cpu/quant/mod.rs
cyb/evy/forks/bevy_core_pipeline/src/skybox/mod.rs
cyb/evy/forks/bevy_pbr/src/render/mod.rs
cyb/evy/forks/naga/src/proc/mod.rs
cyb/evy/forks/bevy_sprite_render/src/texture_slice/mod.rs
cyb/evy/crates/evy_prysm_core/src/layout/mod.rs
cyb/evy/forks/bevy_pbr/src/prepass/mod.rs
cyb/evy/forks/bevy_pbr/src/meshlet/mod.rs
cyb/evy/forks/naga/src/back/mod.rs
soft3/glia/run/arch/decoder/families/mod.rs
cyb/evy/forks/bevy_render/src/render_resource/mod.rs
cyb/evy/forks/bevy_core_pipeline/src/deferred/mod.rs
cyb/evy/forks/bevy_render/src/diagnostic/mod.rs
cyb/evy/forks/bevy_core_pipeline/src/upscaling/mod.rs
cyb/evy/forks/bevy_core_pipeline/src/core_2d/mod.rs
soft3/radio/quinn/quinn-proto/src/connection/mod.rs
soft3/radio/quinn/quinn/examples/common/mod.rs
soft3/strata/kuro/wgsl/src/shaders/mod.rs
soft3/glia/run/backend/honeycrisp/kernels/mod.rs
cyb/evy/forks/bevy_post_process/src/effect_stack/mod.rs
cyb/evy/forks/bevy_ecs/src/storage/mod.rs
cyb/evy/forks/bevy_ecs/src/component/mod.rs
neural/trident/src/ir/tree/lower/mod.rs
cyb/evy/forks/bevy_transform/src/components/mod.rs
cyb/evy/forks/bevy_ecs/src/change_detection/mod.rs
cyb/wysm/crates/wasmi/src/instance/mod.rs
cyb/wysm/crates/wasmi/tests/integration/mod.rs
cyb/wysm/crates/collections/src/arena/mod.rs
cyb/evy/forks/bevy_pbr/src/deferred/mod.rs
cyb/evy/forks/bevy_core_pipeline/src/oit/mod.rs
soft3/radio/quinn/quinn-proto/src/config/mod.rs
cyb/wysm/crates/core/src/memory/mod.rs
cyb/evy/forks/bevy_sprite_render/src/tilemap_chunk/mod.rs
cyb/wysm/crates/wasi/src/sync/mod.rs
soft3/strata/genies/wgsl/src/shaders/mod.rs
cyb/evy/forks/bevy_ecs/src/query/mod.rs
cyb/evy/forks/naga/src/front/mod.rs
cyb/evy/forks/bevy_ecs/src/world/mod.rs
cyb/wysm/crates/ir/src/decode/mod.rs
cyb/evy/forks/bevy_anti_alias/src/taa/mod.rs
neural/trident/src/ir/tir/builder/mod.rs
cyb/evy/forks/bevy_sprite_render/src/text2d/mod.rs
cyb/wysm/crates/wasmi/src/store/mod.rs
cyb/evy/forks/naga/src/keywords/mod.rs
cyb/evy/forks/bevy_core_pipeline/src/prepass/mod.rs
cyb/evy/forks/bevy_ecs/src/schedule/mod.rs
cyb/evy/forks/bevy_tasks/src/iter/mod.rs
soft3/glia/run/backend/wgpu/kernels/mod.rs
cyb/wysm/crates/core/src/table/mod.rs
cyb/evy/forks/bevy_render/src/view/mod.rs
cyb/evy/forks/bevy_mesh/src/primitives/mod.rs
cyb/evy/forks/bevy_ecs/src/relationship/mod.rs
soft3/radio/quinn/quinn-proto/src/range_set/mod.rs
cyb/evy/forks/bevy_render/src/render_graph/mod.rs
cyb/evy/forks/bevy_ecs/src/event/mod.rs
cyb/wysm/crates/c_api/src/types/mod.rs
cyb/evy/forks/naga/src/arena/mod.rs
soft3/radio/quinn/quinn-proto/src/tests/mod.rs
cyb/evy/forks/naga/src/valid/mod.rs
cyb/evy/forks/bevy_post_process/src/dof/mod.rs
cyb/wysm/crates/fuzz/src/oracle/mod.rs
cyb/evy/forks/bevy_core_pipeline/src/blit/mod.rs
neural/trident/src/neural/data/tir_graph/mod.rs
cyb/evy/forks/bevy_sprite_render/src/mesh2d/mod.rs
cyb/wysm/crates/wasmi/src/func/mod.rs
cyb/evy/forks/bevy_pbr/src/volumetric_fog/mod.rs
cyb/evy/forks/bevy_post_process/src/auto_exposure/mod.rs
cyb/evy/forks/bevy_core_pipeline/src/core_3d/mod.rs
neural/trident/src/ir/tir/optimize/mod.rs
cyb/evy/forks/bevy_ecs/src/message/mod.rs
cyb/evy/forks/bevy_render/src/render_phase/mod.rs
cyb/evy/forks/bevy_ecs/src/observer/mod.rs
cyb/evy/forks/bevy_sprite/src/texture_slice/mod.rs
cyb/evy/forks/bevy_gizmos/src/primitives/mod.rs
cyb/evy/forks/bevy_pbr/src/lightmap/mod.rs
cyb/evy/forks/bevy_pbr/src/atmosphere/mod.rs
cyb/evy/forks/bevy_render/src/mesh/mod.rs
neural/trident/src/ir/tir/stack/mod.rs
neural/trident/src/syntax/parser/tests/mod.rs
cyb/evy/forks/naga/src/back/glsl/mod.rs
cyb/evy/forks/bevy_ecs/src/world/entity_access/mod.rs
cyb/evy/forks/bevy_core_pipeline/src/oit/resolve/mod.rs
cyb/evy/forks/naga/src/front/spv/mod.rs
cyb/evy/forks/bevy_ecs/src/schedule/graph/mod.rs
cyb/wysm/crates/wasmi/src/engine/translator/mod.rs
cyb/evy/forks/naga/src/back/msl/mod.rs
cyb/wysm/crates/wasmi/src/module/instantiate/mod.rs
cyb/evy/forks/bevy_render/src/experimental/occlusion_culling/mod.rs
cyb/evy/forks/bevy_render/src/view/visibility/mod.rs
cyb/evy/forks/bevy_ecs/src/storage/table/mod.rs
cyb/evy/forks/naga/src/front/wgsl/mod.rs
soft3/radio/quinn/quinn-proto/src/connection/streams/mod.rs
cyb/evy/forks/naga/src/back/wgsl/mod.rs
cyb/wysm/crates/wasmi/src/engine/executor/mod.rs
cyb/evy/forks/naga/src/front/glsl/mod.rs
soft3/radio/quinn/quinn-proto/src/congestion/bbr/mod.rs
cyb/evy/forks/bevy_ecs/src/schedule/executor/mod.rs
cyb/wysm/crates/wasmi/src/engine/limits/mod.rs
cyb/wysm/crates/wasmi/src/module/parser/mod.rs
cyb/evy/forks/naga/src/back/spv/mod.rs
cyb/evy/forks/bevy_mesh/src/primitives/dim3/mod.rs
cyb/evy/forks/naga/src/back/dot/mod.rs
cyb/wysm/crates/wasi/src/sync/snapshots/mod.rs
cyb/evy/forks/bevy_core_pipeline/src/experimental/mip_generation/mod.rs
cyb/evy/forks/naga/src/back/hlsl/mod.rs
struct Baz { m: mat3x2, } struct Baz { float2 m_0; float2 m_1; float2 m_2; }; float3x2 GetMatmOnBaz(Baz obj) { return float3x2(obj.m_0, obj.m_1, obj.m_2); }
cyb/evy/forks/bevy_ecs/src/system/commands/mod.rs
cyb/evy/forks/bevy_render/src/view/window/mod.rs
cyb/evy/forks/naga/src/front/wgsl/lower/mod.rs
cyb/wysm/crates/wasmi/src/engine/executor/handler/mod.rs
cyb/evy/forks/naga/src/front/wgsl/parse/mod.rs
cyb/evy/forks/naga/src/back/wgsl/polyfill/mod.rs
cyb/wysm/crates/wasmi/src/engine/translator/func/mod.rs
cyb/wysm/crates/wasmi/src/engine/executor/handler/dispatch/mod.rs
cyb/wysm/crates/wasmi/src/engine/translator/func/stack/mod.rs
cyb/wysm/crates/wasmi/src/engine/translator/func/simd/mod.rs

Graph