asic_rs/miners/backends/avalonminer/
mod.rs

1use semver;
2use std::net::IpAddr;
3
4pub use avalon_a::AvalonAMiner;
5pub use avalon_q::AvalonQMiner;
6
7use crate::data::device::MinerModel;
8use crate::data::device::models::avalon::AvalonMinerModel;
9use crate::miners::backends::traits::*;
10
11pub mod avalon_a;
12pub mod avalon_q;
13
14pub struct AvalonMiner;
15
16impl MinerConstructor for AvalonMiner {
17    #[allow(clippy::new_ret_no_self)]
18    fn new(ip: IpAddr, model: MinerModel, _: Option<semver::Version>) -> Box<dyn Miner> {
19        match &model {
20            MinerModel::AvalonMiner(AvalonMinerModel::AvalonHomeQ) => {
21                Box::new(AvalonQMiner::new(ip, model))
22            }
23            MinerModel::AvalonMiner(_) => Box::new(AvalonAMiner::new(ip, model)),
24            _ => unreachable!(),
25        }
26    }
27}