use atat::atat_derive::AtatCmd;
use heapless::String;
use types::{PDPDComp, PDPHComp, PDPIPv4Alloc, PDPPCSCF, PDPRequestType, PDPType};
pub mod types;
use super::{Bool, NoResponse};
#[derive(Clone, AtatCmd)]
#[at_cmd("+CGDCONT", NoResponse)]
pub struct DefinePDPContext {
#[at_arg(position = 0)]
pub cid: u8,
#[at_arg(position = 1, len = 12)]
pub pdp_type: PDPType,
#[at_arg(position = 2)]
pub apn: String<64>,
#[at_arg(position = 3)]
pub pdp_addr: String<64>,
#[at_arg(position = 4)]
pub d_comp: PDPDComp,
#[at_arg(position = 5)]
pub h_comp: PDPHComp,
#[at_arg(position = 6)]
pub ipv4_alloc: PDPIPv4Alloc,
#[at_arg(position = 7)]
pub request_type: PDPRequestType,
#[at_arg(position = 8)]
pub pdp_pcscf_discovery_method: PDPPCSCF,
#[at_arg(position = 9)]
pub for_imcn: Bool,
#[at_arg(position = 10)]
pub nslpi: Bool,
#[at_arg(position = 11)]
pub secure_pco: Bool,
#[at_arg(position = 12)]
pub ipv4_mtu_discovery: Bool,
#[at_arg(position = 13)]
pub local_addr_ind: Bool,
#[at_arg(position = 14)]
pub non_ip_mtu_discovery: Bool,
}