fn update_characteristic_information<'enumlist, 'typeinfo: 'enumlist>(
    module: &mut Module,
    recordlayout_info: &mut RecordLayoutInfo,
    characteristic: &mut Characteristic,
    typeinfo: &'typeinfo TypeInfo,
    enum_convlist: &'enumlist mut HashMap<String, &'typeinfo TypeInfo>,
    axis_pts_dim: &HashMap<String, u16>
) {
    let member_id = get_fnc_values_memberid(module, recordlayout_info, &characteristic.deposit);
    if let Some(inner_typeinfo) = get_inner_type(typeinfo, member_id) {
        if let TypeInfo::Enum{typename, enumerators, ..} = inner_typeinfo {
            if characteristic.conversion == "NO_COMPU_METHOD" {
                characteristic.conversion = typename.to_owned();
            }
            cond_create_enum_conversion(module, &characteristic.conversion, enumerators);
            enum_convlist.insert(characteristic.conversion.clone(), typeinfo);
        }

        let (ll, ul) = adjust_limits(
            inner_typeinfo,
            characteristic.lower_limit,
            characteristic.upper_limit
        );
        characteristic.lower_limit = ll;
        characteristic.upper_limit = ul;
    }
    let record_layout = if let Some(idx) = recordlayout_info.idxmap.get(&characteristic.deposit) {
        Some(&module.record_layout[*idx])
    } else {
        None
    };
    update_characteristic_axis(
        &mut characteristic.axis_descr,
        record_layout,
        axis_pts_dim,
        typeinfo
    );
    characteristic.deposit = update_record_layout(module, recordlayout_info, &characteristic.deposit, typeinfo);
}
// update as much as possible of the information inside the CHARACTERISTIC
update as much as possible of the information inside the CHARACTERISTIC
update as much as possible of the information inside the CHARACTERISTIC
fn update_characteristic_information<'enumlist, 'typeinfo: 'enumlist>(
    module: &mut Module,
    recordlayout_info: &mut RecordLayoutInfo,
    characteristic: &mut Characteristic,
    typeinfo: &'typeinfo TypeInfo,
    enum_convlist: &'enumlist mut HashMap<String, &'typeinfo TypeInfo>,
    axis_pts_dim: &HashMap<String, u16>
) {
    let member_id = get_fnc_values_memberid(module, recordlayout_info, &characteristic.deposit);
    if let Some(inner_typeinfo) = get_inner_type(typeinfo, member_id) {
        if let TypeInfo::Enum{typename, enumerators, ..} = inner_typeinfo {
            if characteristic.conversion == "NO_COMPU_METHOD" {
                characteristic.conversion = typename.to_owned();
            }
            cond_create_enum_conversion(module, &characteristic.conversion, enumerators);
            enum_convlist.insert(characteristic.conversion.clone(), typeinfo);
        }
        let (ll, ul) = adjust_limits(
            inner_typeinfo,
            characteristic.lower_limit,
            characteristic.upper_limit
        );
        characteristic.lower_limit = ll;
        characteristic.upper_limit = ul;
    }
    let record_layout = if let Some(idx) = recordlayout_info.idxmap.get(&characteristic.deposit) {
        Some(&module.record_layout[*idx])
    } else {
        None
    };
    update_characteristic_axis(
        &mut characteristic.axis_descr,
        record_layout,
        axis_pts_dim,
        typeinfo
    );
    characteristic.deposit = update_record_layout(module, recordlayout_info, &characteristic.deposit, typeinfo);
}
fn update_characteristic_information < ' enumlist , ' typeinfo : ' enumlist > ( module : & mut Module , recordlayout_info : & mut RecordLayoutInfo , characteristic : & mut Characteristic , typeinfo : & ' typeinfo TypeInfo , enum_convlist : & ' enumlist mut HashMap < String , & ' typeinfo TypeInfo > , axis_pts_dim : & HashMap < String , u16 > ) { let member_id = get_fnc_values_memberid ( module , recordlayout_info , & characteristic . deposit ) ; if let Some ( inner_typeinfo ) = get_inner_type ( typeinfo , member_id ) { if let TypeInfo :: Enum { typename , enumerators , .. } = inner_typeinfo { if characteristic . conversion == " " { characteristic . conversion = typename . to_owned ( ) ; } cond_create_enum_conversion ( module , & characteristic . conversion , enumerators ) ; enum_convlist . insert ( characteristic . conversion . clone ( ) , typeinfo ) ; } let ( ll , ul ) = adjust_limits ( inner_typeinfo , characteristic . lower_limit , characteristic . upper_limit ) ; characteristic . lower_limit = ll ; characteristic . upper_limit = ul ; } let record_layout = if let Some ( idx ) = recordlayout_info . idxmap . get ( & characteristic . deposit ) { Some ( & module . record_layout [ * idx ] ) } else { None } ; update_characteristic_axis ( & mut characteristic . axis_descr , record_layout , axis_pts_dim , typeinfo ) ; characteristic . deposit = update_record_layout ( module , recordlayout_info , & characteristic . deposit , typeinfo ) ; }
update as much as possible of the information inside the CHARACTERISTIC
update as much as possible of the information inside the CHARACTERISTIC
module
&mut Module
recordlayout_info
&mut RecordLayoutInfo
characteristic
&mut Characteristic
typeinfo
&'typeinfo TypeInfo
enum_convlist
&'enumlist mut HashMap<String, &'typeinfo TypeInfo>
axis_pts_dim
&HashMap<String, u16>