asic_rs/miners/backends/avalonminer/
mod.rs1use 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}