Equivalente en Rust EtherCAT a ecrt_master_create_domain()

Mientras que en C++ usarías

ethercat_create_domain.cpp
// Crear dominio
domain = ecrt_master_create_domain(master);
if (!domain) {
    std::cerr << "Failed to create domain!" << std::endl;
    return -1;
}

el equivalente en Rust usando el crate ethercat sería:

ethercat_create_domain.rs
use ethercat::{Domain, Master};

let domain_idx = master.create_domain()?;

Ejemplo completo incluyendo solicitud del master y creación del dominio:

ethercat_master_and_domain.rs
use ethercat::{Master, MasterAccess};

// También puedes usar MasterAccess::ReadOnly si no necesitas acceso de escritura
// 0 es el índice del master a abrir (usualmente 0)
let mut master = Master::open(0, MasterAccess::ReadWrite)?;
// Reservar (también conocido como "solicitar") el master (básicamente para acceso exclusivo)
master.reserve()?;

// Crear dominio
let domain_idx = master.create_domain()?;

Echa un vistazo a artículos similares por categoría: Rust, EtherCAT