use rustyasn::{Config, EncodingRule};
fn main() {
configuration_examples();
}
fn configuration_examples() {
println!("=== RustyASN Configuration Examples ===\n");
let low_latency_config = Config::low_latency(); println!("1. Low Latency Configuration:");
println!(" Encoding rule: {:?}", low_latency_config.encoding_rule);
println!(
" Max message size: {} bytes",
low_latency_config.max_message_size
);
println!(
" Zero-copy enabled: {}",
low_latency_config.enable_zero_copy
);
println!(
" Validate checksums: {}",
low_latency_config.validate_checksums
);
let high_reliability_config = Config::high_reliability(); println!("\n2. High Reliability Configuration:");
println!(
" Encoding rule: {:?}",
high_reliability_config.encoding_rule
);
println!(
" Max message size: {} bytes",
high_reliability_config.max_message_size
);
println!(
" Zero-copy enabled: {}",
high_reliability_config.enable_zero_copy
);
println!(
" Validate checksums: {}",
high_reliability_config.validate_checksums
);
let mut custom_config = Config::new(EncodingRule::OER);
custom_config.max_message_size = 16 * 1024; custom_config.enable_zero_copy = true;
custom_config.validate_checksums = false;
println!("\n3. Custom Configuration:");
println!(" Encoding rule: {:?}", custom_config.encoding_rule);
println!(
" Max message size: {} bytes",
custom_config.max_message_size
);
println!(" Zero-copy enabled: {}", custom_config.enable_zero_copy);
println!(
" Validate checksums: {}",
custom_config.validate_checksums
);
println!("\n4. Available Encoding Rules:");
let rules = [
(
EncodingRule::BER,
"Basic Encoding Rules - Self-describing, flexible",
),
(
EncodingRule::DER,
"Distinguished Encoding Rules - Canonical subset of BER",
),
(
EncodingRule::OER,
"Octet Encoding Rules - Byte-aligned, efficient",
),
];
for (rule, description) in rules {
println!(" {rule:?}: {description}");
}
println!("\n✓ Configuration examples complete!");
}