fn update_measurement_information<'enumlist, 'typeinfo: 'enumlist>(
    module: &mut Module,
    measurement: &mut Measurement,
    typeinfo: &'typeinfo TypeInfo,
    enum_convlist: &'enumlist mut HashMap<String, &'typeinfo TypeInfo>,
    use_new_matrix_dim: bool
) {
    if let TypeInfo::Enum{typename, enumerators, ..} = typeinfo {
        if measurement.conversion == "NO_COMPU_METHOD" {
            measurement.conversion = typename.to_owned();
        }
        cond_create_enum_conversion(module, &measurement.conversion, enumerators);
        enum_convlist.insert(measurement.conversion.clone(), typeinfo);
    }

    let (ll, ul) = adjust_limits(typeinfo, measurement.lower_limit, measurement.upper_limit);
    measurement.lower_limit = ll;
    measurement.upper_limit = ul;

    update_matrix_dim(&mut measurement.matrix_dim, typeinfo, use_new_matrix_dim);
    measurement.array_size = None;
}
// update datatype, limits and dimension of a MEASURMENT
update datatype, limits and dimension of a MEASURMENT
update datatype limits and dimension of a MEASURMENT
fn update_measurement_information<'enumlist, 'typeinfo: 'enumlist>(
    module: &mut Module,
    measurement: &mut Measurement,
    typeinfo: &'typeinfo TypeInfo,
    enum_convlist: &'enumlist mut HashMap<String, &'typeinfo TypeInfo>,
    use_new_matrix_dim: bool
) {
    if let TypeInfo::Enum{typename, enumerators, ..} = typeinfo {
        if measurement.conversion == "NO_COMPU_METHOD" {
            measurement.conversion = typename.to_owned();
        }
        cond_create_enum_conversion(module, &measurement.conversion, enumerators);
        enum_convlist.insert(measurement.conversion.clone(), typeinfo);
    }
    let (ll, ul) = adjust_limits(typeinfo, measurement.lower_limit, measurement.upper_limit);
    measurement.lower_limit = ll;
    measurement.upper_limit = ul;
    update_matrix_dim(&mut measurement.matrix_dim, typeinfo, use_new_matrix_dim);
    measurement.array_size = None;
}
fn update_measurement_information < ' enumlist , ' typeinfo : ' enumlist > ( module : & mut Module , measurement : & mut Measurement , typeinfo : & ' typeinfo TypeInfo , enum_convlist : & ' enumlist mut HashMap < String , & ' typeinfo TypeInfo > , use_new_matrix_dim : bool ) { if let TypeInfo :: Enum { typename , enumerators , .. } = typeinfo { if measurement . conversion == " " { measurement . conversion = typename . to_owned ( ) ; } cond_create_enum_conversion ( module , & measurement . conversion , enumerators ) ; enum_convlist . insert ( measurement . conversion . clone ( ) , typeinfo ) ; } let ( ll , ul ) = adjust_limits ( typeinfo , measurement . lower_limit , measurement . upper_limit ) ; measurement . lower_limit = ll ; measurement . upper_limit = ul ; update_matrix_dim ( & mut measurement . matrix_dim , typeinfo , use_new_matrix_dim ) ; measurement . array_size = None ; }
update datatype, limits and dimension of a MEASURMENT
update datatype limits and dimension of a MEASURMENT
module
&mut Module
measurement
&mut Measurement
typeinfo
&'typeinfo TypeInfo
enum_convlist
&'enumlist mut HashMap<String, &'typeinfo TypeInfo>
use_new_matrix_dim
bool