#[derive(Debug, Clone)]
pub struct AssociationConfig {
pub local_ae_title: String,
pub max_pdu_length: u32,
pub dimse_timeout_secs: u64,
pub accept_all_transfer_syntaxes: bool,
pub accepted_transfer_syntaxes: Vec<String>,
pub preferred_transfer_syntaxes: Vec<String>,
pub implementation_class_uid: String,
pub implementation_version_name: String,
pub accepted_abstract_syntaxes: Vec<String>,
}
impl Default for AssociationConfig {
fn default() -> Self {
Self {
local_ae_title: "DCMTKRS".to_string(),
max_pdu_length: 65_536,
dimse_timeout_secs: 30,
accept_all_transfer_syntaxes: false,
accepted_transfer_syntaxes: Vec::new(),
preferred_transfer_syntaxes: Vec::new(),
implementation_class_uid: "1.3.6.1.4.1.30071.8.1".to_string(),
implementation_version_name: "DCMTK_RS_010".to_string(),
accepted_abstract_syntaxes: Vec::new(),
}
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn default_config_sensible() {
let cfg = AssociationConfig::default();
assert_eq!(cfg.max_pdu_length, 65_536);
assert_eq!(cfg.dimse_timeout_secs, 30);
assert!(!cfg.accept_all_transfer_syntaxes);
assert!(cfg.accepted_transfer_syntaxes.is_empty());
assert!(cfg.preferred_transfer_syntaxes.is_empty());
assert!(!cfg.implementation_class_uid.is_empty());
}
}