use dehashed_rs::{DehashedApi, Query, ScheduledRequest, SearchType};
use tokio::sync::oneshot;
use tokio::task::JoinSet;
#[tokio::main]
async fn main() {
tracing_subscriber::fmt::init();
let api_key = "<api_key>".to_string();
let mut set = JoinSet::new();
let api = DehashedApi::new(api_key).unwrap();
let scheduler = api.start_scheduler();
let s = scheduler.clone();
set.spawn(async move {
let tx = s.retrieve_sender();
let (ret_tx, ret_rx) = oneshot::channel();
tx.send(ScheduledRequest::new(
Query::Domain(SearchType::Or(vec![
SearchType::Simple("example.com".to_string()),
SearchType::Exact("example.org".to_string()),
])),
ret_tx,
))
.await
.unwrap();
if let Ok(result) = ret_rx.await {
println!("{result:?}");
}
});
let sender = scheduler.retrieve_sender();
let tx = sender.clone();
set.spawn(async move {
let (ret_tx, ret_rx) = oneshot::channel();
tx.send(ScheduledRequest::new(
Query::Email(SearchType::Simple("test@example.com".to_string())),
ret_tx,
))
.await
.unwrap();
if let Ok(res) = ret_rx.await {
println!("{res:?}");
}
});
while let Some(Ok(_)) = set.join_next().await {}
}