fn from()

in sdk/core/azure_core_amqp/src/messaging.rs [290:347]


    fn from(list: AmqpList) -> Self {
        let mut builder = AmqpTarget::builder();
        let field_count = list.len();
        if field_count >= 1 {
            if let Some(AmqpValue::String(address)) = list.0.first() {
                builder = builder.with_address(address.clone());
            }
        }
        if field_count >= 2 {
            if let Some(AmqpValue::UByte(durable)) = list.0.get(1) {
                match *durable {
                    0 => {
                        builder = builder.with_durable(TerminusDurability::None);
                    }
                    1 => {
                        builder = builder.with_durable(TerminusDurability::Configuration);
                    }
                    2 => {
                        builder = builder.with_durable(TerminusDurability::UnsettledState);
                    }
                    _ => {
                        panic!("Invalid durable value");
                    }
                }
            }
        }
        if field_count >= 3 {
            if let Some(AmqpValue::Symbol(expiry_policy)) = list.0.get(2) {
                builder = builder.with_expiry_policy(expiry_policy.clone().into());
            }
        }
        if field_count >= 4 {
            if let Some(AmqpValue::UInt(timeout)) = list.0.get(3) {
                builder = builder.with_timeout(*timeout);
            }
        }
        if field_count >= 5 {
            if let Some(AmqpValue::Boolean(dynamic)) = list.0.get(4) {
                builder = builder.with_dynamic(*dynamic);
            }
        }
        if field_count >= 6 {
            if let Some(AmqpValue::Map(dynamic_node_properties)) = list.0.get(5) {
                let dynamic_node_properties: AmqpOrderedMap<String, AmqpValue> =
                    dynamic_node_properties
                        .iter()
                        .map(|(k, v)| (k.clone().into(), v.clone()))
                        .collect();
                builder = builder.with_dynamic_node_properties(dynamic_node_properties);
            }
        }
        if field_count >= 7 {
            if let Some(AmqpValue::Array(capabilities)) = list.0.get(6) {
                builder = builder.with_capabilities(capabilities.to_vec());
            }
        }
        builder.build()
    }