1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
//! Model struct for Money type
use serde::{Deserialize, Serialize};
use super::enums::Currency;
/// Represents an amount of money.
///
/// `Money` fields can be signed or unsigned. Fields that do not explicitly define whether they are
/// signed or unsigned are considered unsigned and can only hold positive amounts. For signed
/// fields, the sign of the value indicates the purpose of the money transfer. See
/// [Working with Monetary
/// Amounts](https://developer.squareup.com/docs/build-basics/working-with-monetary-amounts)
/// for more information.
#[derive(Clone, Debug, Default, Deserialize, Eq, PartialEq, Serialize)]
pub struct Money {
/// The amount of money, in the smallest denomination of the currency indicated by `currency`.
/// For example, when `currency` is `USD`, `amount` is in cents. Monetary amounts can be
/// positive or negative. See the specific field description to determine the meaning of the
/// sign in a particular case.
pub amount: i32,
/// The type of currency, in ISO 4217 format. For example, the currency code for US dollars is
/// `USD`.
pub currency: Currency,
}