in sdk/core/azure_core_amqp/src/fe2o3/messaging/message_source.rs [15:71]
fn from(source: AmqpSource) -> Self {
let mut builder = fe2o3_amqp_types::messaging::Source::builder();
if let Some(address) = source.address {
builder = builder.address(address);
}
if let Some(durable) = source.durable {
builder = builder.durable(durable.into());
}
if let Some(expiry_policy) = source.expiry_policy {
builder = builder.expiry_policy(expiry_policy.into());
}
if let Some(timeout) = source.timeout {
builder = builder.timeout(timeout);
}
if let Some(dynamic) = source.dynamic {
builder = builder.dynamic(dynamic);
}
if let Some(dynamic_node_properties) = source.dynamic_node_properties {
let fields: Fields = Fields::new();
let fields = dynamic_node_properties
.into_iter()
.fold(fields, |mut fields, (k, v)| {
fields.insert(k.into(), v.into());
fields
});
builder = builder.dynamic_node_properties(fields);
}
if let Some(distribution_mode) = source.distribution_mode {
builder = builder.distribution_mode(distribution_mode.into());
}
if let Some(filter) = source.filter {
builder = builder.filter(
filter
.into_iter()
.map(|(k, v)| (k.into(), v.into()))
.collect(),
);
}
if let Some(default_outcome) = source.default_outcome {
builder = builder.default_outcome(default_outcome.into());
}
if let Some(outcomes) = source.outcomes {
let outcomes: fe2o3_amqp_types::primitives::Array<
fe2o3_amqp_types::primitives::Symbol,
> = outcomes.into_iter().map(|o| o.into()).collect();
builder = builder.outcomes(outcomes);
}
if let Some(capabilities) = source.capabilities {
let capabilities: fe2o3_amqp_types::primitives::Array<
fe2o3_amqp_types::primitives::Symbol,
> = capabilities.into_iter().map(|c| c.into()).collect();
builder = builder.capabilities(capabilities);
}
builder.build()
}