haloumi_core/
query.rs

1//! Types and traits related to cell queries.
2
3mod sealed {
4    /// Sealed trait pattern to avoid clients implementing the trait [`super::QueryKind`] on
5    /// external types.
6    pub trait QK {}
7}
8
9/// Marker trait for defining the kind of a query.
10pub trait QueryKind: sealed::QK {}
11
12/// Marker for fixed cell queries.
13#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord)]
14pub struct Fixed;
15
16impl sealed::QK for Fixed {}
17impl QueryKind for Fixed {}
18
19/// Marker for advice cell queries.
20#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord)]
21pub struct Advice;
22
23impl sealed::QK for Advice {}
24impl QueryKind for Advice {}
25
26/// Marker for instance cell queries.
27#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord)]
28pub struct Instance;
29
30impl sealed::QK for Instance {}
31impl QueryKind for Instance {}