in sdk/core/azure_core_amqp/src/fe2o3/messaging/message_source.rs [75:120]
fn from(source: fe2o3_amqp_types::messaging::Source) -> Self {
let mut amqp_source_builder = AmqpSource::builder();
if let Some(address) = source.address {
amqp_source_builder = amqp_source_builder.with_address(address);
}
amqp_source_builder = amqp_source_builder
.with_durable(source.durable.into())
.with_expiry_policy(source.expiry_policy.into())
.with_timeout(source.timeout)
.with_dynamic(source.dynamic);
if let Some(dynamic_node_properties) = source.dynamic_node_properties {
let dynamic_node_properties: AmqpOrderedMap<AmqpSymbol, AmqpValue> =
dynamic_node_properties
.into_iter()
.map(|(k, v)| (k.into(), v.into()))
.collect();
amqp_source_builder =
amqp_source_builder.with_dynamic_node_properties(dynamic_node_properties);
}
if let Some(distribution_mode) = source.distribution_mode {
amqp_source_builder =
amqp_source_builder.with_distribution_mode(distribution_mode.into());
}
if let Some(filter) = source.filter {
let filter: AmqpOrderedMap<AmqpSymbol, AmqpValue> = filter
.into_iter()
.map(|(k, v)| (k.into(), v.into()))
.collect();
amqp_source_builder = amqp_source_builder.with_filter(filter);
}
if let Some(default_outcome) = source.default_outcome {
amqp_source_builder = amqp_source_builder.with_default_outcome(default_outcome.into());
}
if let Some(outcomes) = source.outcomes {
amqp_source_builder =
amqp_source_builder.with_outcomes(outcomes.into_iter().map(|o| o.into()).collect());
}
if let Some(capabilities) = source.capabilities {
amqp_source_builder = amqp_source_builder
.with_capabilities(capabilities.into_iter().map(|c| c.into()).collect());
}
amqp_source_builder.build()
}