diff options
Diffstat (limited to 'src/solvers/gpu/mod.rs')
-rw-r--r-- | src/solvers/gpu/mod.rs | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/solvers/gpu/mod.rs b/src/solvers/gpu/mod.rs index 2c7f69d..e89f033 100644 --- a/src/solvers/gpu/mod.rs +++ b/src/solvers/gpu/mod.rs @@ -7,14 +7,19 @@ pub use manager::*; type MaskMessage = (u64, u32, Vec<u64>); type RowMessage = (u64, Vec<Vec<u32>>); +#[derive(Debug)] pub enum Message { CheckRequest(CheckRequest), HostMessage(MaskMessage), OutputMessage(RowMessage), ResultMessage(ResultMessage), + RowResult(RowResult), Terminate, + CpuDone, + GpuDone, } +#[derive(Debug)] pub struct ResultMessage { data: Vec<u64>, offset: usize, @@ -48,6 +53,7 @@ impl ResultMessage { } } +#[derive(Debug)] pub struct CheckRequest { rows: Vec<u32>, bitmask: u64, @@ -63,3 +69,19 @@ impl CheckRequest { } } } + +#[derive(Clone, PartialEq, Eq, Hash, Debug)] +pub struct RowResult { + rows: Vec<u32>, +} + +impl RowResult { + fn new(mut rows: Vec<u32>) -> Self { + rows.push(0); + rows.sort(); + Self { rows } + } + fn output(&self) { + println!("{:?}", self.rows); + } +} |