If you consider the code examples in temperature.rs
, you will see that some use a tuple and some use a single type return
. While for development this is a fairly acceptable approach, for a release we may want something more structured.
Consider the two functions kelvin_to_celcius
and celcius_to_farenheit
; in order to use them, we need to have two variables:
let ktoc = kelvin_to_celcius(14.5f32); let ctof = celcius_to_fahrenheit(24.3f32);
There are a number of possible solutions to this problem.
- Do nothing! Many libraries use multiple variables when the function returns different types.
- Implement a trait within the module that tests the return for false and returns either a
String
containing the answer or calculation failed. - Define a single
struct
for the answer of the form, which is then passed back to the caller, as follows:
pub struct maths_answersMathsAnswers { calc_complete : bool, fanswer : f32, ianswer : i32, }
If we remove the first...