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}