Struct ArPackage

Source
pub struct ArPackage(/* private fields */);
Expand description

An ArPackage is an Autosar package, which can contain other packages or elements

Implementations§

Source§

impl ArPackage

Source

pub fn create_application_array_data_type<T: Into<ApplicationDataType> + AbstractionElement>( &self, name: &str, element_type: &T, size: ApplicationArraySize, ) -> Result<ApplicationArrayDataType, AutosarAbstractionError>

create a new ApplicationArrayDataType in the package

§Example
let package = model.get_or_create_package("/some/package")?;
let element_type = package.create_application_primitive_data_type("ElementType", ApplicationPrimitiveCategory::Value, None, None, None)?;
let data_type = package.create_application_array_data_type("ArrayDataType", &element_type, ApplicationArraySize::Fixed(4))?;
assert!(model.get_element_by_path("/some/package/ArrayDataType").is_some());
§Errors
Source

pub fn create_application_primitive_data_type( &self, name: &str, category: ApplicationPrimitiveCategory, compu_method: Option<&CompuMethod>, unit: Option<&Unit>, data_constraint: Option<&DataConstr>, ) -> Result<ApplicationPrimitiveDataType, AutosarAbstractionError>

create a new ApplicationPrimitiveDataType in the package

§Example
let package = model.get_or_create_package("/some/package")?;
let data_type = package.create_application_primitive_data_type("ApplicationPrimitiveDataType", ApplicationPrimitiveCategory::Value, None, None, None)?;
assert!(model.get_element_by_path("/some/package/ApplicationPrimitiveDataType").is_some());
§Errors
Source

pub fn create_application_record_data_type( &self, name: &str, ) -> Result<ApplicationRecordDataType, AutosarAbstractionError>

create a new ApplicationRecordDataType in the package

§Example
let package = model.get_or_create_package("/some/package")?;
let data_type = package.create_application_record_data_type("ApplicationRecordDataType")?;
assert!(model.get_element_by_path("/some/package/ApplicationRecordDataType").is_some());
§Errors
Source

pub fn create_application_sw_component_type( &self, name: &str, ) -> Result<ApplicationSwComponentType, AutosarAbstractionError>

create a new ApplicationSwComponentType in the package

§Example
let package = model.get_or_create_package("/some/package")?;
let component = package.create_application_sw_component_type("MyComponent")?;
assert!(model.get_element_by_path("/some/package/MyComponent").is_some());
§Errors
Source

pub fn create_client_server_interface( &self, name: &str, ) -> Result<ClientServerInterface, AutosarAbstractionError>

create a new ClientServerInterface in the package

§Example
let package = model.get_or_create_package("/some/package")?;
let interface = package.create_client_server_interface("ClientServerInterface")?;
assert!(model.get_element_by_path("/some/package/ClientServerInterface").is_some());
§Errors
Source

pub fn create_complex_device_driver_sw_component_type( &self, name: &str, ) -> Result<ComplexDeviceDriverSwComponentType, AutosarAbstractionError>

create a new ComplexDeviceDriverSwComponentType in the package

§Example
let package = model.get_or_create_package("/some/package")?;
let component = package.create_complex_device_driver_sw_component_type("ComplexDeviceDriverSwComponentType")?;
assert!(model.get_element_by_path("/some/package/ComplexDeviceDriverSwComponentType").is_some());
§Errors
Source

pub fn create_composition_sw_component_type( &self, name: &str, ) -> Result<CompositionSwComponentType, AutosarAbstractionError>

create a new CompositionSwComponentType in the package

§Example
let package = model.get_or_create_package("/some/package")?;
let component = package.create_composition_sw_component_type("CompositionSwComponentType")?;
assert!(model.get_element_by_path("/some/package/CompositionSwComponentType").is_some());
§Errors
Source

pub fn create_compu_method( &self, name: &str, content: CompuMethodContent, ) -> Result<CompuMethod, AutosarAbstractionError>

create a new CompuMethod in the package

§Example
let package = model.get_or_create_package("/some/package")?;
let compu_content = CompuMethodContent::Linear(CompuMethodLinearContent {
   direction: CompuScaleDirection::IntToPhys,
   offset: 0.0,
   factor: 1.0,
   divisor: 1.0,
   lower_limit: None,
   upper_limit: None,
});
let compu_method = package.create_compu_method("CompuMethod", compu_content)?;
assert!(model.get_element_by_path("/some/package/CompuMethod").is_some());
§Errors
Source

pub fn create_constant_specification<T: Into<ValueSpecification>>( &self, name: &str, value: T, ) -> Result<ConstantSpecification, AutosarAbstractionError>

create a new ConstantSpecification in the package

§Example
let package = model.get_or_create_package("/some/package")?;
let value = NumericalValueSpecification {
   label: None,
   value: 42.0,
};
let compu_method = package.create_constant_specification("CompuMethod", value)?;
assert!(model.get_element_by_path("/some/package/CompuMethod").is_some());
§Errors
Source

pub fn create_data_constr( &self, name: &str, ) -> Result<DataConstr, AutosarAbstractionError>

create a new DataConstr in the package

§Example
let package = model.get_or_create_package("/some/package")?;
let data_constr = package.create_data_constr("DataConstr")?;
assert!(model.get_element_by_path("/some/package/DataConstr").is_some());
§Errors
Source

pub fn create_data_transformation_set( &self, name: &str, ) -> Result<DataTransformationSet, AutosarAbstractionError>

create a new DataTransformationSet in the package

§Example
let package = model.get_or_create_package("/some/package")?;
let transformation_set = package.create_data_transformation_set("DataTransformationSet")?;
assert!(model.get_element_by_path("/some/package/DataTransformationSet").is_some());
§Errors
Source

pub fn create_data_type_mapping_set( &self, name: &str, ) -> Result<DataTypeMappingSet, AutosarAbstractionError>

create a new DataTypeMappingSet in the package

§Example
let package = model.get_or_create_package("/some/package")?;
let mapping_set = package.create_data_type_mapping_set("DataTypeMappingSet")?;
assert!(model.get_element_by_path("/some/package/DataTypeMappingSet").is_some());
§Errors
Source

pub fn create_ecu_abstraction_sw_component_type( &self, name: &str, ) -> Result<EcuAbstractionSwComponentType, AutosarAbstractionError>

create a new EcuAbstractionSwComponentType in the package

§Example
let package = model.get_or_create_package("/some/package")?;
let component = package.create_ecu_abstraction_sw_component_type("EcuAbstractionSwComponentType")?;
assert!(model.get_element_by_path("/some/package/EcuAbstractionSwComponentType").is_some());
§Errors
Source

pub fn create_ecuc_definition_collection( &self, name: &str, ) -> Result<EcucDefinitionCollection, AutosarAbstractionError>

create a new EcucDefinitionCollection in the package

§Example
let package = model.get_or_create_package("/pkg")?;
let definition_collection = package.create_ecuc_definition_collection("DefinitionCollection")?;
assert!(model.get_element_by_path("/pkg/DefinitionCollection").is_some());
§Errors
Source

pub fn create_ecuc_destination_uri_def_set( &self, name: &str, ) -> Result<EcucDestinationUriDefSet, AutosarAbstractionError>

create a new EcucDestinationUriDefSet in the package

§Example
let package = model.get_or_create_package("/pkg")?;
let uri_def_set = package.create_ecuc_destination_uri_def_set("DestinationUriDefSet")?;
assert!(model.get_element_by_path("/pkg/DestinationUriDefSet").is_some());
§Errors
Source

pub fn create_ecuc_module_configuration_values( &self, name: &str, definition: &EcucModuleDef, ) -> Result<EcucModuleConfigurationValues, AutosarAbstractionError>

create a new EcucModuleConfigurationValues in the package

§Example
let package = model.get_or_create_package("/pkg")?;
let module_config = package.create_ecuc_module_configuration_values("ModuleConfig", &module_definition)?;
assert!(model.get_element_by_path("/pkg/ModuleConfig").is_some());
§Errors
Source

pub fn create_ecuc_module_def( &self, name: &str, ) -> Result<EcucModuleDef, AutosarAbstractionError>

create a new EcucModuleDef in the package

§Example
let package = model.get_or_create_package("/pkg")?;
let bsw_module = package.create_ecuc_module_def("BswModule")?;
assert!(model.get_element_by_path("/pkg/BswModule").is_some());
§Errors
Source

pub fn create_ecuc_value_collection( &self, name: &str, ) -> Result<EcucValueCollection, AutosarAbstractionError>

create a new EcucValueCollection in the package

§Example
let package = model.get_or_create_package("/pkg")?;
let value_collection = package.create_ecuc_value_collection("ValueCollection")?;
assert!(model.get_element_by_path("/pkg/ValueCollection").is_some());
§Errors
Source

pub fn create_implementation_data_type( &self, settings: &ImplementationDataTypeSettings, ) -> Result<ImplementationDataType, AutosarAbstractionError>

create a new ImplementationDataType in the package

§Example
let package = model.get_or_create_package("/some/package")?;
let sw_base_type = package.create_sw_base_type("uint8", 8, BaseTypeEncoding::None, None, None, None)?;
let settings = ImplementationDataTypeSettings::Value {
    name: "ImplementationDataType_Value".to_string(),
    base_type: sw_base_type,
    compu_method: None,
    data_constraint: None,
};
let data_type = package.create_implementation_data_type(&settings)?;
assert!(model.get_element_by_path("/some/package/ImplementationDataType_Value").is_some());
§Errors
Source

pub fn create_mode_declaration_group( &self, name: &str, category: Option<ModeDeclarationGroupCategory>, ) -> Result<ModeDeclarationGroup, AutosarAbstractionError>

create a new ModeDeclarationGroup in the package

§Example
let package = model.get_or_create_package("/some/package")?;
let mode_declaration_group = package.create_mode_declaration_group("ModeDeclarationGroup", None)?;
assert!(model.get_element_by_path("/some/package/ModeDeclarationGroup").is_some());
§Errors
Source

pub fn create_mode_switch_interface( &self, name: &str, ) -> Result<ModeSwitchInterface, AutosarAbstractionError>

create a new ModeSwitchInterface in the package

§Example
let package = model.get_or_create_package("/some/package")?;
let interface = package.create_mode_switch_interface("ModeSwitchInterface")?;
assert!(model.get_element_by_path("/some/package/ModeSwitchInterface").is_some());
§Errors
Source

pub fn create_nv_data_interface( &self, name: &str, ) -> Result<NvDataInterface, AutosarAbstractionError>

create a new NvDataInterface in the package

§Example
let package = model.get_or_create_package("/some/package")?;
let interface = package.create_nv_data_interface("NvDataInterface")?;
assert!(model.get_element_by_path("/some/package/NvDataInterface").is_some());
§Errors
Source

pub fn create_parameter_interface( &self, name: &str, ) -> Result<ParameterInterface, AutosarAbstractionError>

create a new ParameterInterface in the package

§Example
let package = model.get_or_create_package("/some/package")?;
let interface = package.create_parameter_interface("ParameterInterface")?;
assert!(model.get_element_by_path("/some/package/ParameterInterface").is_some());
§Errors
Source

pub fn create_sender_receiver_interface( &self, name: &str, ) -> Result<SenderReceiverInterface, AutosarAbstractionError>

create a new SenderReceiverInterface in the package

§Example
let package = model.get_or_create_package("/some/package")?;
let interface = package.create_sender_receiver_interface("SenderReceiverInterface")?;
assert!(model.get_element_by_path("/some/package/SenderReceiverInterface").is_some());
§Errors
Source

pub fn create_sensor_actuator_sw_component_type( &self, name: &str, ) -> Result<SensorActuatorSwComponentType, AutosarAbstractionError>

create a new SensorActuatorSwComponentType in the package

§Example
let package = model.get_or_create_package("/some/package")?;
let component = package.create_sensor_actuator_sw_component_type("SensorActuatorSwComponentType")?;
assert!(model.get_element_by_path("/some/package/SensorActuatorSwComponentType").is_some());
§Errors
Source

pub fn create_service_sw_component_type( &self, name: &str, ) -> Result<ServiceSwComponentType, AutosarAbstractionError>

create a new ServiceSwComponentType in the package

§Example
let package = model.get_or_create_package("/some/package")?;
let component = package.create_service_sw_component_type("ServiceSwComponentType")?;
assert!(model.get_element_by_path("/some/package/ServiceSwComponentType").is_some());
§Errors
Source

pub fn create_someip_sd_client_event_group_timing_config( &self, name: &str, time_to_live: u32, ) -> Result<SomeipSdClientEventGroupTimingConfig, AutosarAbstractionError>

create a new SomeipSdClientEventGroupTimingConfig in the package

§Example
let package = model.get_or_create_package("/some/package")?;
let client_config = package.create_someip_sd_client_event_group_timing_config("SomeipSdClientEventGroupTimingConfig", 10)?;
assert!(model.get_element_by_path("/some/package/SomeipSdClientEventGroupTimingConfig").is_some());
§Errors
Source

pub fn create_someip_sd_client_service_instance_config( &self, name: &str, ) -> Result<SomeipSdClientServiceInstanceConfig, AutosarAbstractionError>

create a new SomeipSdClientServiceInstanceConfig in the package

§Example
let package = model.get_or_create_package("/some/package")?;
let service_instance = package.create_someip_sd_client_service_instance_config("SomeipSdClientServiceInstanceConfig")?;
assert!(model.get_element_by_path("/some/package/SomeipSdClientServiceInstanceConfig").is_some());
§Errors
Source

pub fn create_someip_sd_server_event_group_timing_config( &self, name: &str, request_response_delay: &RequestResponseDelay, ) -> Result<SomeipSdServerEventGroupTimingConfig, AutosarAbstractionError>

create a new SomeipSdServerEventGroupTimingConfig in the package

§Example
let package = model.get_or_create_package("/some/package")?;
let request_response_delay = RequestResponseDelay {
    min_value: 0.1,
    max_value: 0.2,
};
let timing_config = package.create_someip_sd_server_event_group_timing_config("SomeipSdServerEventGroupTimingConfig", &request_response_delay)?;
assert!(model.get_element_by_path("/some/package/SomeipSdServerEventGroupTimingConfig").is_some());
§Errors
Source

pub fn create_someip_sd_server_service_instance_config( &self, name: &str, ttl: u32, ) -> Result<SomeipSdServerServiceInstanceConfig, AutosarAbstractionError>

create a new SomeipSdServerServiceInstanceConfig in the package

§Example
let package = model.get_or_create_package("/some/package")?;
let service_instance = package.create_someip_sd_server_service_instance_config("SomeipSdServerServiceInstanceConfig", 10)?;
assert!(model.get_element_by_path("/some/package/SomeipSdServerServiceInstanceConfig").is_some());
§Errors
Source

pub fn create_sw_base_type( &self, name: &str, bit_length: u32, base_type_encoding: BaseTypeEncoding, byte_order: Option<ByteOrder>, mem_alignment: Option<u32>, native_declaration: Option<&str>, ) -> Result<SwBaseType, AutosarAbstractionError>

create a new SwBaseType in the package

§Example
let package = model.get_or_create_package("/some/package")?;
let base_type = package.create_sw_base_type("MyBaseType", 8, BaseTypeEncoding::None, None, None, None)?;
assert!(model.get_element_by_path("/some/package/MyBaseType").is_some());
§Errors
Source

pub fn create_system( &self, name: &str, category: SystemCategory, ) -> Result<System, AutosarAbstractionError>

create a new System in the package

Note that an Autosar model should ony contain one SYSTEM. This is not checked here.

§Example
let package = model.get_or_create_package("/some/package")?;
let system = package.create_system("System", SystemCategory::SystemExtract)?;
assert!(model.get_element_by_path("/some/package/System").is_some());
§Errors
Source

pub fn create_system_signal( &self, name: &str, ) -> Result<SystemSignal, AutosarAbstractionError>

create a new SystemSignal in the package

§Example
let package = model.get_or_create_package("/some/package")?;
let signal = package.create_system_signal("MySignal")?;
assert!(model.get_element_by_path("/some/package/MySignal").is_some());
§Errors
Source

pub fn create_system_signal_group( &self, name: &str, ) -> Result<SystemSignalGroup, AutosarAbstractionError>

create a new SystemSignalGroup in the package

§Example
let package = model.get_or_create_package("/some/package")?;
let signal_group = package.create_system_signal_group("MySignalGroup")?;
assert!(model.get_element_by_path("/some/package/MySignalGroup").is_some());
§Errors
Source

pub fn create_trigger_interface( &self, name: &str, ) -> Result<TriggerInterface, AutosarAbstractionError>

create a new TriggerInterface in the package

§Example
let package = model.get_or_create_package("/some/package")?;
let interface = package.create_trigger_interface("TriggerInterface")?;
assert!(model.get_element_by_path("/some/package/TriggerInterface").is_some());
§Errors
Source

pub fn create_unit( &self, name: &str, display_name: Option<&str>, ) -> Result<Unit, AutosarAbstractionError>

create a new Unit in the package

§Example
let package = model.get_or_create_package("/some/package")?;
let unit = package.create_unit("Unit", Some("UnitDisplayName"))?;
assert!(model.get_element_by_path("/some/package/Unit").is_some());
§Errors
Source

pub fn elements(&self) -> impl Iterator<Item = Element> + Send + 'static

iterate over all elements in the package

§Example
let package = model.get_or_create_package("/some/package")?;
for element in package.elements() {
   println!("{:?}", element);
}
Source

pub fn create_sub_package( &self, name: &str, ) -> Result<ArPackage, AutosarAbstractionError>

create a new ArPackage as a sub-package of the package

§Example
let package = model.get_or_create_package("/some/package")?;
let sub_package = package.create_sub_package("SubPackage")?;
assert!(model.get_element_by_path("/some/package/SubPackage").is_some());
Source

pub fn sub_packages(&self) -> impl Iterator<Item = ArPackage> + Send + 'static

iterate over all sub-packages in the package

§Example
let package = model.get_or_create_package("/some/package")?;
for sub_package in package.sub_packages() {
  println!("{:?}", sub_package);
}

Trait Implementations§

Source§

impl AbstractionElement for ArPackage

Source§

fn element(&self) -> &Element

Get the underlying Element from the abstraction element
Source§

impl Clone for ArPackage

Source§

fn clone(&self) -> ArPackage

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for ArPackage

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl From<ArPackage> for Element

Source§

fn from(val: ArPackage) -> Self

Converts to this type from the input type.
Source§

impl Hash for ArPackage

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl IdentifiableAbstractionElement for ArPackage

Source§

fn name(&self) -> Option<String>

Get the item name of the element
Source§

fn set_name(&self, name: &str) -> Result<(), AutosarAbstractionError>

Set the item name of the element
Source§

impl PartialEq for ArPackage

Source§

fn eq(&self, other: &ArPackage) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl TryFrom<Element> for ArPackage

Source§

type Error = AutosarAbstractionError

The type returned in the event of a conversion error.
Source§

fn try_from(element: Element) -> Result<Self, Self::Error>

Performs the conversion.
Source§

impl Eq for ArPackage

Source§

impl StructuralPartialEq for ArPackage

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.