openvm_recursion_circuit/primitives/
bus.rs1use openvm_recursion_circuit_derive::AlignedBorrow;
2
3use crate::define_typed_lookup_bus;
4
5#[repr(C)]
6#[derive(AlignedBorrow, Debug, Clone)]
7pub struct RangeCheckerBusMessage<T> {
8 pub value: T,
9 pub max_bits: T,
10}
11
12define_typed_lookup_bus!(RangeCheckerBus, RangeCheckerBusMessage);
13
14#[repr(C)]
15#[derive(AlignedBorrow, Debug, Clone)]
16pub struct PowerCheckerBusMessage<T> {
17 pub log: T,
18 pub exp: T,
19}
20
21define_typed_lookup_bus!(PowerCheckerBus, PowerCheckerBusMessage);
22
23#[repr(C)]
24#[derive(AlignedBorrow, Debug, Clone)]
25pub struct ExpBitsLenMessage<T> {
26 pub base: T,
27 pub bit_src: T,
28 pub num_bits: T,
29 pub result: T,
30}
31
32define_typed_lookup_bus!(ExpBitsLenBus, ExpBitsLenMessage);
33
34#[repr(C)]
35#[derive(AlignedBorrow, Debug, Clone)]
36pub struct RightShiftMessage<T> {
37 pub input: T,
38 pub shift_bits: T,
39 pub result: T,
40}
41
42define_typed_lookup_bus!(RightShiftBus, RightShiftMessage);