pub struct StringParameter {
pub(crate) name: CapeStringImpl,
description: CapeStringImpl,
is_input: bool,
shared_unit_data: Rc<RefCell<SharedUnitData>>,
pub(crate) value: CapeStringImpl,
default_value: CapeStringImpl,
possible_values: Option<CapeArrayStringVec>,
exclusive: bool,
validation_status: CapeValidationStatus,
cobia_object_data: StringParameterCobiaObjectData,
}Expand description
The StringParameter class implements a CAPE-OPEN 1.2 string parameter.
Parameters must implement the ICapeIdentification and ICapeParameter interfaces. In addition, string parameters must implement the ICapeStringParameter interface.
This implementation can be used for both input and output parameters. Input parameters can be set by the user, while output parameters are set by the unit operation.
Fields§
§name: CapeStringImplThe name of the parameter
description: CapeStringImplThe description of the parameter
is_input: boolIndicates whether this parameter is an input (true) or an output (false)
Shared data for the unit, containing unit-specific information
value: CapeStringImplThe current value of the parameter
default_value: CapeStringImplDefault value of the parameter
possible_values: Option<CapeArrayStringVec>List of allowed values for the parameter
exclusive: boolExclusive implies only values in the list are allowed.
validation_status: CapeValidationStatusValidation status of the parameter
cobia_object_data: StringParameterCobiaObjectDataCobia object data for this object, which contains generated code to provide the native COBIA interfaces
Implementations§
Source§impl StringParameter
impl StringParameter
fn create_instance( _string_parameter_boxed_ptr: *mut *mut ICapeInterface, name: CapeStringImpl, description: CapeStringImpl, is_input: bool, shared_unit_data: Rc<RefCell<SharedUnitData>>, default_value: CapeStringImpl, possible_values: Option<CapeArrayStringVec>, exclusive: bool, ) -> CapeResult
Sourcepub(crate) fn create<T: CapeSmartPointer>(
name: CapeStringImpl,
description: CapeStringImpl,
is_input: bool,
shared_unit_data: Rc<RefCell<SharedUnitData>>,
default_value: CapeStringImpl,
possible_values: Option<CapeArrayStringVec>,
exclusive: bool,
) -> T
pub(crate) fn create<T: CapeSmartPointer>( name: CapeStringImpl, description: CapeStringImpl, is_input: bool, shared_unit_data: Rc<RefCell<SharedUnitData>>, default_value: CapeStringImpl, possible_values: Option<CapeArrayStringVec>, exclusive: bool, ) -> T
Create a new instance of the object and return a smart pointer to it
This function panics if the created object does not implement the interface corresponding to the smart pointer to be returned. For a non-panic version, use the try_create() function.
Sourcepub(crate) fn try_create<T: CapeSmartPointer>(
name: CapeStringImpl,
description: CapeStringImpl,
is_input: bool,
shared_unit_data: Rc<RefCell<SharedUnitData>>,
default_value: CapeStringImpl,
possible_values: Option<CapeArrayStringVec>,
exclusive: bool,
) -> Result<T, COBIAError>
pub(crate) fn try_create<T: CapeSmartPointer>( name: CapeStringImpl, description: CapeStringImpl, is_input: bool, shared_unit_data: Rc<RefCell<SharedUnitData>>, default_value: CapeStringImpl, possible_values: Option<CapeArrayStringVec>, exclusive: bool, ) -> Result<T, COBIAError>
Create a new instance of the object and return a smart pointer to it
This function returns an error if the created object does not implement the interface corresponding to the smart pointer to be returned.
Sourcepub(crate) unsafe fn borrow<T: CapeSmartPointer>(smart_pointer: &T) -> &Self
pub(crate) unsafe fn borrow<T: CapeSmartPointer>(smart_pointer: &T) -> &Self
Get a reference to the object
Note that as the reference is created from a smart pointer, the reference is valid only as long as the smart pointer is valid. The reference is not checked for multiple borrows
§Safety
The user must ensure that the smart pointer contains a valid object, and that the object is of the type that is being borrowed. It is not possible for the compiler to check this, as the borrow is done through the native object pointer in the interface.
Sourcepub(crate) unsafe fn borrow_mut<T: CapeSmartPointer>(
smart_pointer: &mut T,
) -> &mut Self
pub(crate) unsafe fn borrow_mut<T: CapeSmartPointer>( smart_pointer: &mut T, ) -> &mut Self
Get a mutable reference to the object
Note that as the reference is created from a smart pointer, the reference is valid only as long as the smart pointer is valid. The reference is not checked for multiple borrows
§Safety
This function is unsafe because it allows mutable access to the object. Also the user must ensure that the smart pointer contains a valid object, and that the object is of the type that is being borrowed. It is not possible for the compiler to check this, as the borrow is done through the native object pointer in the interface.
Source§impl StringParameter
impl StringParameter
pub fn new( name: CapeStringImpl, description: CapeStringImpl, is_input: bool, shared_unit_data: Rc<RefCell<SharedUnitData>>, default_value: CapeStringImpl, possible_values: Option<CapeArrayStringVec>, exclusive: bool, ) -> Self
Sourcepub fn set_possible_values(
&mut self,
possible_values: Option<&CapeArrayStringVec>,
)
pub fn set_possible_values( &mut self, possible_values: Option<&CapeArrayStringVec>, )
Replace the list of possible values with a new list.
§Arguments:
possible_values- AnOption<CapeArrayStringVec>containing the new list of possible values. IfNone, the parameter will not have any possible values.
Trait Implementations§
Source§impl Display for StringParameter
impl Display for StringParameter
Source§fn fmt(&self, f: &mut Formatter<'_>) -> Result
fn fmt(&self, f: &mut Formatter<'_>) -> Result
Format the StringParameter as a string for display purposes.
The std::fmt::Display interface is used when generating the source name of the object that raises an error.
§Arguments:
f- A mutable reference to astd::fmt::Formatterwhere the formatted string will be written.
§Returns:
- A
std::fmt::Resultindicating the success or failure of the formatting operation.
Source§impl ICapeIdentification for StringParameter
impl ICapeIdentification for StringParameter
Source§fn get_component_name(
&mut self,
name: &mut CapeStringOut<'_>,
) -> Result<(), COBIAError>
fn get_component_name( &mut self, name: &mut CapeStringOut<'_>, ) -> Result<(), COBIAError>
Source§fn get_component_description(
&mut self,
description: &mut CapeStringOut<'_>,
) -> Result<(), COBIAError>
fn get_component_description( &mut self, description: &mut CapeStringOut<'_>, ) -> Result<(), COBIAError>
Source§fn set_component_name(
&mut self,
_name: &CapeStringIn<'_>,
) -> Result<(), COBIAError>
fn set_component_name( &mut self, _name: &CapeStringIn<'_>, ) -> Result<(), COBIAError>
Set the name of the component.
This method is not allowed for this parameter implementation and will return an error.
Source§fn set_component_description(
&mut self,
_desc: &CapeStringIn<'_>,
) -> Result<(), COBIAError>
fn set_component_description( &mut self, _desc: &CapeStringIn<'_>, ) -> Result<(), COBIAError>
Set the description of the component.
This method is not allowed for this parameter implementation and will return an error.
Source§impl ICapeIdentificationImpl for StringParameter
impl ICapeIdentificationImpl for StringParameter
type T = StringParameter
fn as_interface_pointer(&mut self) -> *mut ICapeInterface
§fn init_interface() -> _ICapeInterface
fn init_interface() -> _ICapeInterface
fn init<Timpl>(u: &mut Timpl)where
Timpl: ICapeIdentificationImpl + ICapeInterfaceImpl,
extern "C" fn raw_get_component_name( me: *mut c_void, name: *mut _ICapeString, ) -> u32
extern "C" fn raw_set_component_name( me: *mut c_void, name: *mut _ICapeString, ) -> u32
extern "C" fn raw_get_component_description( me: *mut c_void, desc: *mut _ICapeString, ) -> u32
extern "C" fn raw_set_component_description( me: *mut c_void, desc: *mut _ICapeString, ) -> u32
const VTABLE: CAPEOPEN_1_2_ICapeIdentification_VTable = _
Source§impl ICapeInterfaceImpl for StringParameter
impl ICapeInterfaceImpl for StringParameter
type T = StringParameter
Source§fn get_object_data(&mut self) -> &mut CapeObjectData
fn get_object_data(&mut self) -> &mut CapeObjectData
CapeObjectData structure.Source§fn get_self(&mut self) -> *mut StringParameter
fn get_self(&mut self) -> *mut StringParameter
§const CAPEINTERFACE_VTABLE: ICapeInterface_VTable = _
const CAPEINTERFACE_VTABLE: ICapeInterface_VTable = _
§fn init(&mut self) -> *mut _ICapeInterface
fn init(&mut self) -> *mut _ICapeInterface
§fn create_object_data<Timpl>() -> CapeObjectDatawhere
Timpl: ICapeInterfaceImpl,
fn create_object_data<Timpl>() -> CapeObjectDatawhere
Timpl: ICapeInterfaceImpl,
extern "C" fn raw_add_reference(me: *mut c_void)
extern "C" fn raw_release(me: *mut c_void)
extern "C" fn raw_query_interface( me: *mut c_void, uuid: *const _CapeUUID, interface: *mut *mut _ICapeInterface, ) -> u32
extern "C" fn raw_get_last_error( me: *mut c_void, error: *mut *mut _ICapeError, ) -> u32
§fn add_interface(
&mut self,
uuid: *const _CapeUUID,
interface: *mut _ICapeInterface,
)
fn add_interface( &mut self, uuid: *const _CapeUUID, interface: *mut _ICapeInterface, )
§fn set_last_error(&mut self, error: COBIAError, scope: &str) -> u32
fn set_last_error(&mut self, error: COBIAError, scope: &str) -> u32
§fn clear_last_error(&mut self)
fn clear_last_error(&mut self)
§fn as_icapeinterface(&mut self) -> *mut _ICapeInterface
fn as_icapeinterface(&mut self) -> *mut _ICapeInterface
Source§impl ICapeParameter for StringParameter
impl ICapeParameter for StringParameter
Source§fn get_val_status(&mut self) -> Result<CapeValidationStatus, COBIAError>
fn get_val_status(&mut self) -> Result<CapeValidationStatus, COBIAError>
Get the validation status of the parameter.
§Returns:
- A
Resultcontaining the validation status, which is alwaysCapeValidfor this implementation.
Source§fn get_mode(&mut self) -> Result<CapeParamMode, COBIAError>
fn get_mode(&mut self) -> Result<CapeParamMode, COBIAError>
Get the mode of the parameter.
§Returns:
- A
Resultcontaining the mode of the parameter, which is eitherCapeInputorCapeOutputbased on theis_inputfield.
Source§fn get_type(&mut self) -> Result<CapeParamType, COBIAError>
fn get_type(&mut self) -> Result<CapeParamType, COBIAError>
Get the type of the parameter.
§Returns:
- A
Resultcontaining the type of the parameter, which is alwaysCapeParameterStringfor this implementation.
Source§fn validate(
&mut self,
message: &mut CapeStringOut<'_>,
) -> Result<CapeBoolean, COBIAError>
fn validate( &mut self, message: &mut CapeStringOut<'_>, ) -> Result<CapeBoolean, COBIAError>
Validate the parameter.
Call the value validation method to check if the parameter value is valid.
§Arguments:
message- A mutable reference to aCapeStringOutwhere any validation error messages will be set.
§Returns:
- A
Resultcontaining aCapeBooleanindicating whether the parameter is valid or not. If the input value is not specified, it returns false and sets an error message.
Source§fn reset(&mut self) -> Result<(), COBIAError>
fn reset(&mut self) -> Result<(), COBIAError>
Reset the parameter to its default value.
This method sets the value of the parameter back to its default value and marks the unit as dirty.
It also resets the validation status to CapeNotValidated.
§Returns:
- A
Resultindicating success or failure. If successful, the value is reset to the default value.
Source§impl ICapeParameterImpl for StringParameter
impl ICapeParameterImpl for StringParameter
type T = StringParameter
fn as_interface_pointer(&mut self) -> *mut ICapeInterface
§fn init_interface() -> _ICapeInterface
fn init_interface() -> _ICapeInterface
fn init<Timpl>(u: &mut Timpl)where
Timpl: ICapeParameterImpl + ICapeInterfaceImpl,
extern "C" fn raw_get_val_status( me: *mut c_void, val_status: *mut i32, ) -> u32
extern "C" fn raw_get_mode(me: *mut c_void, mode: *mut i32) -> u32
extern "C" fn raw_get_type( me: *mut c_void, parameter_type: *mut i32, ) -> u32
extern "C" fn raw_validate( me: *mut c_void, message: *mut _ICapeString, is_ok: *mut u32, ) -> u32
extern "C" fn raw_reset(me: *mut c_void) -> u32
const VTABLE: CAPEOPEN_1_2_ICapeParameter_VTable = _
Source§impl ICapeStringParameter for StringParameter
impl ICapeStringParameter for StringParameter
Source§fn get_default_value(
&mut self,
default_value: &mut CapeStringOut<'_>,
) -> Result<(), COBIAError>
fn get_default_value( &mut self, default_value: &mut CapeStringOut<'_>, ) -> Result<(), COBIAError>
Source§fn get_option_list(
&mut self,
option_names: &mut CapeArrayStringOut<'_>,
) -> Result<(), COBIAError>
fn get_option_list( &mut self, option_names: &mut CapeArrayStringOut<'_>, ) -> Result<(), COBIAError>
Source§fn get_restricted_to_list(&mut self) -> Result<CapeBoolean, COBIAError>
fn get_restricted_to_list(&mut self) -> Result<CapeBoolean, COBIAError>
Check whether the value is restricted to the list of possible values.
§Returns:
- A
Resultcontaining aCapeBooleanindicating whether the value is restricted to the list of possible values.
Source§fn validate(
&mut self,
value: &CapeStringIn<'_>,
message: &mut CapeStringOut<'_>,
) -> Result<CapeBoolean, COBIAError>
fn validate( &mut self, value: &CapeStringIn<'_>, message: &mut CapeStringOut<'_>, ) -> Result<CapeBoolean, COBIAError>
Validate the value of the string parameter.
This method checks whether the specified value is suitable for the parameter.
§Arguments:
value- A reference to aCapeStringIncontaining the value to be validated.message- A mutable reference to aCapeStringOutwhere any validation error messages will be set.
§Returns:
- A
Resultcontaining aCapeBooleanindicating whether the value is valid or not. If the input value is not specified, it returns false and sets an error message.