betex 0.7.8

Betfair / Prediction Market Exchange
Documentation
//! Common order validation helpers.
//!
//! Provides reusable validation logic for order parameters that is shared
//! across different book implementations.

use crate::book::protocol::reject::RejectReason;
use crate::types::{Money, OddsX10000};

/// Validate order parameters common to all book types.
///
/// # Arguments
/// * `price` - The order price (odds)
/// * `stake` - The order stake amount
///
/// # Errors
/// Returns an error if:
/// - `price` is not a valid tick on the ladder
/// - `stake` is not positive
#[allow(dead_code)]
pub fn validate_order_params(price: OddsX10000, stake: Money) -> Result<(), RejectReason> {
    if !price.is_valid_tick() {
        return Err(RejectReason::InvalidOdds);
    }
    if !stake.is_positive() {
        return Err(RejectReason::InvalidStake);
    }
    Ok(())
}