#![cfg_attr(docsrs, feature(doc_cfg))]
#![deny(missing_docs)]
pub mod bulk;
pub mod card;
pub mod catalog;
pub mod error;
pub mod format;
pub mod list;
pub mod ruling;
pub mod search;
pub mod set;
pub mod uri;
mod util;
pub type Result<T> = std::result::Result<T, error::Error>;
pub use card::Card;
pub use catalog::Catalog;
pub use error::Error;
pub use ruling::Ruling;
pub use set::Set;
#[cfg(test)]
mod tests {
use std::convert::TryFrom;
use futures::stream::StreamExt;
use serde_json::{from_str, to_string};
use crate::search::prelude::*;
use crate::set::{Set, SetCode};
#[test]
fn set_code_serde_test() {
let instance = SetCode::try_from("war").unwrap();
let new_instance: SetCode = from_str(&to_string(&instance).unwrap()).unwrap();
assert_eq!(new_instance, instance);
let instance = SetCode::try_from("wwar").unwrap();
let new_instance: SetCode = from_str(&to_string(&instance).unwrap()).unwrap();
assert_eq!(new_instance, instance)
}
#[tokio::test]
#[ignore]
async fn all_sets() {
Set::all()
.await
.unwrap()
.into_stream()
.map(Result::unwrap)
.for_each(|set| async move {
assert!(set.code.get().len() >= 3);
})
.await;
}
#[tokio::test]
#[ignore]
async fn all_sets_buffered() {
Set::all()
.await
.unwrap()
.into_stream_buffered(10)
.map(Result::unwrap)
.for_each(|set| async move {
assert!(set.code.get().len() >= 3);
})
.await;
}
#[tokio::test]
#[ignore]
async fn latest_cards() {
Set::all()
.await
.unwrap()
.into_stream()
.map(Result::unwrap)
.take(30)
.for_each_concurrent(None, |s| async move {
let set_cards = set(s.code).search().await;
if let Err(e) = set_cards {
println!("Could not search for cards in '{}' - {}", s.name, e);
}
})
.await;
}
#[tokio::test]
#[ignore]
async fn latest_cards_buffered() {
Set::all()
.await
.unwrap()
.into_stream_buffered(10)
.map(Result::unwrap)
.take(30)
.for_each_concurrent(None, |s| async move {
let set_cards = set(s.code).search().await;
if let Err(e) = set_cards {
println!("Could not search for cards in '{}' - {}", s.name, e);
}
})
.await;
}
}