pub fn convert_type(
interp: &mut Artichoke,
value: Value,
convert_to: Ruby,
type_name: &str,
method: &str,
raise: ConvertOnError,
) -> Result<Value, Error>Expand description
Attempt a fallible conversion of a Ruby value to a given type tag.
This function can convert Ruby values at the granularity of a Ruby type
tag. Conversion works as follows:
- If the given value has the same type tag as the given
convert_to, return the given value. - Assert that the given conversion method is a valid conversion type.
- Call the conversion method on the given value. If this method raises, return the error.
- If the converted value does not match the given type tag, raise a
TypeError. - The converted value matches the target type, return it.
§Conversion types
The method to be called to perform the implicit conversion must be one of a permitted set. Valid method calls are:
to_intto_aryto_strto_symto_hashto_procto_ioto_ato_sto_ito_fto_r
§MRI Compatibility
This function is modeled after the rb_convert_type C API in MRI Ruby.
§Panics
If the given method is not a valid conversion method, this function will panic.
§Errors
- If the call to the conversion method returns an error, that error is returned.
- If the call to the conversion method returns a value that does not match
the target type tag, a
TypeErroris returned.