///|
/// Fieldbus core root package.

///|
pub fn package_id() -> String {
  "fieldbus_core"
}

///|
pub using @profile_cia402 {
  type Cia402State,
  type Cia402Transition,
  type ControlwordCommand,
  type DriveFault,
  type DriveOperationEnabled,
  type DriveReadyToSwitchOn,
  type DriveSwitchedOn,
  type DriveSwitchOnDisabled,
  cia402_actual_position_index,
  cia402_coe_bindings,
  cia402_controlword_index,
  cia402_contracts_for_bindings,
  cia402_enable_fault_reset_protocol,
  cia402_fault_index,
  cia402_mode_of_operation_index,
  cia402_object_contracts,
  cia402_statusword_index,
  cia402_target_position_index,
  decode_statusword,
}

///|
pub using @canopen {
  type CanopenArbitrationSample,
  type CanopenCia402Asset,
  type CanopenErrorCounters,
  type CanopenErrorState,
  type CanopenErrorStateSample,
  type CanopenFrame,
  type CanopenFrameEnvelope,
  type CanopenFrameKind,
  type CanopenFrameMediumReport,
  type CanopenNmtCommand,
  type CanopenNmtState,
  type CanopenPdoFrame,
  type CanopenSdoExpeditedFrame,
  canopen_arbitration_sample_fixture,
  canopen_cia402_assets,
  canopen_cia402_bindings,
  canopen_cia402_contracts,
  canopen_cia402_observer_backend,
  canopen_cia402_observer_report,
  canopen_cia402_protocol,
  canopen_cia402_trace_fixture,
  canopen_error_state_sample_fixture,
  canopen_frame_medium_report,
  canopen_frame_medium_trace_fixture,
  canopen_heartbeat_base_cob_id,
  canopen_heartbeat_cob_id,
  canopen_medium_id,
  canopen_nmt_cob_id,
  canopen_rpdo1_base_cob_id,
  canopen_rpdo1_cob_id,
  canopen_rpdo1_frame_fixture,
  canopen_sdo_expedited_download_fixture,
  canopen_sdo_expedited_upload_fixture,
  canopen_sdo_download_base_cob_id,
  canopen_sdo_download_cob_id,
  canopen_sdo_upload_base_cob_id,
  canopen_sdo_upload_cob_id,
  canopen_tpdo1_base_cob_id,
  canopen_tpdo1_cob_id,
  canopen_tpdo1_frame_fixture,
}

///|
pub using @modbus {
  type ModbusApplicationPdu,
  type ModbusFramingSimulationReport,
  type ModbusMbapEnvelope,
  type ModbusPduKind,
  type ModbusRtuFrame,
  type ModbusRtuFrameBoundary,
  type ModbusRtuTiming,
  type ModbusRegisterArea,
  type ModbusRegisterProfile,
  type ModbusRegisterProfileReport,
  type ModbusTcpFrame,
  modbus_fabric_framing_trace,
  modbus_framing_simulation_report,
  modbus_medium_id,
  modbus_p2p_framing_trace,
  modbus_query_trace_fixture,
  modbus_read_holding_pdu,
  modbus_read_input_pdu,
  modbus_register_bindings,
  modbus_register_contracts,
  modbus_register_observer_backend,
  modbus_register_observer_report,
  modbus_register_profile_report,
  modbus_register_profiles,
  modbus_register_protocol,
  modbus_register_trace_fixture,
  modbus_rtu_boundary_fixture,
  modbus_rtu_read_input_fixture,
  modbus_tcp_read_holding_fixture,
}

///|
pub using @zenoh_mirror {
  type ZenohCia402Mirror,
  type ZenohFabricSessionReport,
  type ZenohMirrorCapabilities,
  type ZenohMirrorKind,
  type ZenohMirrorReport,
  zenoh_cia402_bindings,
  zenoh_cia402_contracts,
  zenoh_cia402_mirror_report,
  zenoh_cia402_mirrors,
  zenoh_cia402_observer_backend,
  zenoh_cia402_observer_report,
  zenoh_cia402_protocol,
  zenoh_cia402_trace_fixture,
  zenoh_fabric_session_observer_report,
  zenoh_fabric_session_report,
  zenoh_fabric_session_trace_fixture,
  zenoh_mirror_medium_id,
}

///|
pub using @moonecat_cia402_adapter {
  type MoonEcatCia402Asset,
  moonecat_cia402_assets,
  moonecat_cia402_bindings,
  moonecat_cia402_contracts,
  moonecat_cia402_observer_backend,
  moonecat_cia402_observer_report,
  moonecat_cia402_protocol,
  moonecat_cia402_trace_fixture,
}

///|
pub using @cia402_scenario_loop {
  type Cia402ConformanceArtifact,
  type Cia402ScenarioReport,
  type Cia402ScenarioVariant,
  run_cia402_conformance_artifact,
  run_cia402_scenario,
}