* mwalib now exposes the calibration solution information in a metafits file (if present). When the metafits is generated by a call to the webservice, the metafits file will attempt to populate calibration solution information for the specified observation. The newest produced calibration solution from a calibrator with the same frequency channels and proximity in time will be added to the CALIBDATA hdu which is exposed by mwalib in the structs and attributes below. see: [Metafits files Wiki article](https://mwatelescope.atlassian.net/wiki/spaces/MP/pages/24969594/Metafits+files) for more information about metafits files.
* `RfInput` struct now contains the following new fields. If calibration solution information is not present in the metafits they will be `None`.
* `calib_delay` - Calibration delay in meters
* `calib_gains` - Calibration gains vector: 1 f32 per coarse channel. Channels are in `MetafitsContext.course_chans` order.
* When calibration solution information is present, some values of `calib_delay` and `calib_gains` may be NaN. Make sure you understand [how NaNs work in Rust](https://doc.rust-lang.org/std/primitive.f32.html) if you will be using these columns!
* Via C, if the calibration solution information is not present, the values will be NaN (or an array of NaNs in the case of `calib_gains`):
* `MetafitsContext` struct now contains the following new fields.
* `best_cal_fit_id` - Best calibration fit ID. If not present in the metafits it will be `None`; via C, the value will be 0.
* `best_cal_obs_id` - Best calibration observation ID. If not present in the metafits it will be `None`; via C, the value will be 0.
* `best_cal_code_ver` - Best calibration fit code version. If not present in the metafits it will be `None`; via C, the value will be an empty string.
* `best_cal_fit_timestamp` - Best calibration fit timestamp. If not present in the metafits it will be `None`; via C, the value will be an empty string.
* `best_cal_creator` - Best calibration fit creator. If not present in the metafits it will be `None`; via C, the value will be an empty string.
* `best_cal_fit_iters` - Best calibration fit iterations. If not present in the metafits it will be `None`; via C, the value will be 0.
* `best_cal_fit_iter_limit` - Best calibration fit iteration limit. If not present in the metafits it will be `None`; via C, the value will be 0.
* When populating `RfInput::has_whitening_filter`, mwalib will use the Whitening_Filter key/value if present in the metafits, instead of deducing it from `cable_flavour`. If whitening_filter is not present, the existing deduction logic will be used.
* `MetafitsContext::deripple_applied`- modified mwalib to use DERIPPLE metafits key (it still supports DR_FLAG just in case it is an old metafits)
* When using the `Display` trait of `MetafitsContext` or the C function `mwalib_metafits_context_display`, limit the printing of fine channels - for better readability.
* Added simple Rust example "mwalib-print-context" which does what it says on the tin.