Skip to main content

BoosterSimulator

Struct BoosterSimulator 

Source
pub struct BoosterSimulator<'a> { /* private fields */ }
Expand description

Simulates opening MTG booster packs using the MTGJSON booster configuration data.

The simulator reads from the set booster parquet tables (content weights, contents, sheet cards, and sheet metadata) to faithfully reproduce the distribution of cards in sealed product.

Implementations§

Source§

impl<'a> BoosterSimulator<'a>

Source

pub fn new(conn: &'a Connection) -> Self

Create a new BoosterSimulator bound to the given connection.

Source

pub fn available_types(&self, set_code: &str) -> Result<Vec<String>>

Return the available booster type names for a set (e.g. ["draft", "collector"]).

Returns an empty vector if the set has no booster configuration data.

Source

pub fn open_pack( &self, set_code: &str, booster_type: &str, ) -> Result<Vec<Value>>

Open a single booster pack and return the card data for every card in the pack.

Performs weighted random selection of a pack template and then weighted random selection of cards from each sheet in the template. Returns a vector of card JSON objects fetched from the cards view.

Source

pub fn open_box( &self, set_code: &str, booster_type: &str, packs: usize, ) -> Result<Vec<Vec<Value>>>

Open a box containing packs booster packs.

Returns a vector of packs, where each pack is a vector of card JSON objects.

Source

pub fn sheet_contents( &self, set_code: &str, booster_type: &str, sheet_name: &str, ) -> Result<Option<HashMap<String, i64>>>

Get the contents of a specific sheet as a {uuid: weight} map.

Returns None if the sheet does not exist for the given set/booster type.

Auto Trait Implementations§

§

impl<'a> !RefUnwindSafe for BoosterSimulator<'a>

§

impl<'a> !Send for BoosterSimulator<'a>

§

impl<'a> !Sync for BoosterSimulator<'a>

§

impl<'a> !UnwindSafe for BoosterSimulator<'a>

§

impl<'a> Freeze for BoosterSimulator<'a>

§

impl<'a> Unpin for BoosterSimulator<'a>

§

impl<'a> UnsafeUnpin for BoosterSimulator<'a>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more