swift_mt_message/fields/
field37h.rs

1use serde::{Deserialize, Serialize};
2use swift_mt_message_macros::SwiftField;
3
4/// # Field 37H: Interest Rate
5/// Format: 1!a[N]12d (indicator + optional negative + rate)
6/// Validation: rate_format, positive_rate
7#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, SwiftField)]
8pub struct Field37H {
9    /// Rate type indicator (1!a format: C or D)
10    #[component("1!a", validate = ["rate_format"])]
11    pub rate_indicator: char,
12    /// Whether this is a negative rate
13    #[component("1!a", optional)]
14    pub is_negative: Option<bool>,
15    /// Rate value (12d format, percentage)
16    #[component("12d", validate = ["rate_format", "positive_rate"])]
17    pub rate: f64,
18}