use super::*;
use crate::SpiceContext;
use f2rust_std::*;
const SECPJY: f64 = (86400.0 * 365.25);
const SECPTY: f64 = (86400.0 * 365.2421988);
const LTYEAR: f64 = ((86400.0 * 365.25) * 299792458.0);
const DPM: f64 = (1.0 / 60.0);
const DPS: f64 = (1.0 / 3600.0);
const DPSA: f64 = (15.0 / 3600.0);
const AU: f64 = 149597870613.68887;
const SCALE: f64 = 206264.80624790437;
const PARSEC: f64 = (AU * SCALE);
const ANG: i32 = 0;
const DIST: i32 = (ANG + 7);
const TME: i32 = (DIST + 17);
const TOTAL: i32 = (TME + 7);
struct SaveVars {
UNITS: ActualCharArray,
CNVRTN: StackArray<f64, 31>,
TYPE: ActualCharArray,
FIRST: bool,
}
impl SaveInit for SaveVars {
fn new() -> Self {
let mut UNITS = ActualCharArray::new(16, 1..=TOTAL);
let mut CNVRTN = StackArray::<f64, 31>::new(1..=TOTAL);
let mut TYPE = ActualCharArray::new(8, 1..=TOTAL);
let mut FIRST: bool = false;
FIRST = true;
{
use f2rust_std::data::Val;
let mut clist = [Val::C(b"RADIANS")].into_iter();
fstr::assign(UNITS.get_mut((ANG + 1)), clist.next().unwrap().into_str());
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::C(b"DEGREES")].into_iter();
fstr::assign(UNITS.get_mut((ANG + 2)), clist.next().unwrap().into_str());
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::C(b"ARCMINUTES")].into_iter();
fstr::assign(UNITS.get_mut((ANG + 3)), clist.next().unwrap().into_str());
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::C(b"ARCSECONDS")].into_iter();
fstr::assign(UNITS.get_mut((ANG + 4)), clist.next().unwrap().into_str());
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::C(b"HOURANGLE")].into_iter();
fstr::assign(UNITS.get_mut((ANG + 5)), clist.next().unwrap().into_str());
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::C(b"MINUTEANGLE")].into_iter();
fstr::assign(UNITS.get_mut((ANG + 6)), clist.next().unwrap().into_str());
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::C(b"SECONDANGLE")].into_iter();
fstr::assign(UNITS.get_mut((ANG + 7)), clist.next().unwrap().into_str());
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::D(1.0)].into_iter();
CNVRTN[(ANG + 2)] = clist.next().unwrap().into_f64();
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::D(DPM)].into_iter();
CNVRTN[(ANG + 3)] = clist.next().unwrap().into_f64();
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::D(DPS)].into_iter();
CNVRTN[(ANG + 4)] = clist.next().unwrap().into_f64();
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::D(15.0)].into_iter();
CNVRTN[(ANG + 5)] = clist.next().unwrap().into_f64();
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::D(0.25)].into_iter();
CNVRTN[(ANG + 6)] = clist.next().unwrap().into_f64();
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::D(DPSA)].into_iter();
CNVRTN[(ANG + 7)] = clist.next().unwrap().into_f64();
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::C(b"ANGLE")].into_iter();
fstr::assign(TYPE.get_mut((ANG + 1)), clist.next().unwrap().into_str());
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::C(b"ANGLE")].into_iter();
fstr::assign(TYPE.get_mut((ANG + 2)), clist.next().unwrap().into_str());
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::C(b"ANGLE")].into_iter();
fstr::assign(TYPE.get_mut((ANG + 3)), clist.next().unwrap().into_str());
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::C(b"ANGLE")].into_iter();
fstr::assign(TYPE.get_mut((ANG + 4)), clist.next().unwrap().into_str());
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::C(b"ANGLE")].into_iter();
fstr::assign(TYPE.get_mut((ANG + 5)), clist.next().unwrap().into_str());
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::C(b"ANGLE")].into_iter();
fstr::assign(TYPE.get_mut((ANG + 6)), clist.next().unwrap().into_str());
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::C(b"ANGLE")].into_iter();
fstr::assign(TYPE.get_mut((ANG + 7)), clist.next().unwrap().into_str());
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::C(b"METERS")].into_iter();
fstr::assign(UNITS.get_mut((DIST + 1)), clist.next().unwrap().into_str());
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::C(b"KM")].into_iter();
fstr::assign(UNITS.get_mut((DIST + 2)), clist.next().unwrap().into_str());
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::C(b"CM")].into_iter();
fstr::assign(UNITS.get_mut((DIST + 3)), clist.next().unwrap().into_str());
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::C(b"MM")].into_iter();
fstr::assign(UNITS.get_mut((DIST + 4)), clist.next().unwrap().into_str());
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::C(b"LIGHTSECS")].into_iter();
fstr::assign(UNITS.get_mut((DIST + 5)), clist.next().unwrap().into_str());
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::C(b"AU")].into_iter();
fstr::assign(UNITS.get_mut((DIST + 6)), clist.next().unwrap().into_str());
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::C(b"M")].into_iter();
fstr::assign(UNITS.get_mut((DIST + 7)), clist.next().unwrap().into_str());
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::C(b"KILOMETERS")].into_iter();
fstr::assign(UNITS.get_mut((DIST + 8)), clist.next().unwrap().into_str());
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::C(b"CENTIMETERS")].into_iter();
fstr::assign(UNITS.get_mut((DIST + 9)), clist.next().unwrap().into_str());
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::C(b"MILLIMETERS")].into_iter();
fstr::assign(UNITS.get_mut((DIST + 10)), clist.next().unwrap().into_str());
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::D(1.0)].into_iter();
CNVRTN[(DIST + 1)] = clist.next().unwrap().into_f64();
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::D(1000.0)].into_iter();
CNVRTN[(DIST + 2)] = clist.next().unwrap().into_f64();
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::D(0.01)].into_iter();
CNVRTN[(DIST + 3)] = clist.next().unwrap().into_f64();
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::D(0.001)].into_iter();
CNVRTN[(DIST + 4)] = clist.next().unwrap().into_f64();
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::D(299792458.0)].into_iter();
CNVRTN[(DIST + 5)] = clist.next().unwrap().into_f64();
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::D(AU)].into_iter();
CNVRTN[(DIST + 6)] = clist.next().unwrap().into_f64();
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::D(1.0)].into_iter();
CNVRTN[(DIST + 7)] = clist.next().unwrap().into_f64();
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::D(1000.0)].into_iter();
CNVRTN[(DIST + 8)] = clist.next().unwrap().into_f64();
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::D(0.01)].into_iter();
CNVRTN[(DIST + 9)] = clist.next().unwrap().into_f64();
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::D(0.001)].into_iter();
CNVRTN[(DIST + 10)] = clist.next().unwrap().into_f64();
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::C(b"DISTANCE")].into_iter();
fstr::assign(TYPE.get_mut((DIST + 1)), clist.next().unwrap().into_str());
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::C(b"DISTANCE")].into_iter();
fstr::assign(TYPE.get_mut((DIST + 2)), clist.next().unwrap().into_str());
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::C(b"DISTANCE")].into_iter();
fstr::assign(TYPE.get_mut((DIST + 3)), clist.next().unwrap().into_str());
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::C(b"DISTANCE")].into_iter();
fstr::assign(TYPE.get_mut((DIST + 4)), clist.next().unwrap().into_str());
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::C(b"DISTANCE")].into_iter();
fstr::assign(TYPE.get_mut((DIST + 5)), clist.next().unwrap().into_str());
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::C(b"DISTANCE")].into_iter();
fstr::assign(TYPE.get_mut((DIST + 6)), clist.next().unwrap().into_str());
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::C(b"DISTANCE")].into_iter();
fstr::assign(TYPE.get_mut((DIST + 7)), clist.next().unwrap().into_str());
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::C(b"DISTANCE")].into_iter();
fstr::assign(TYPE.get_mut((DIST + 8)), clist.next().unwrap().into_str());
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::C(b"DISTANCE")].into_iter();
fstr::assign(TYPE.get_mut((DIST + 9)), clist.next().unwrap().into_str());
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::C(b"DISTANCE")].into_iter();
fstr::assign(TYPE.get_mut((DIST + 10)), clist.next().unwrap().into_str());
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::C(b"FEET")].into_iter();
fstr::assign(UNITS.get_mut((DIST + 11)), clist.next().unwrap().into_str());
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::C(b"INCHES")].into_iter();
fstr::assign(UNITS.get_mut((DIST + 12)), clist.next().unwrap().into_str());
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::C(b"STATUTE_MILES")].into_iter();
fstr::assign(UNITS.get_mut((DIST + 13)), clist.next().unwrap().into_str());
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::C(b"NAUTICAL_MILES")].into_iter();
fstr::assign(UNITS.get_mut((DIST + 14)), clist.next().unwrap().into_str());
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::C(b"YARDS")].into_iter();
fstr::assign(UNITS.get_mut((DIST + 15)), clist.next().unwrap().into_str());
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::D(0.3048)].into_iter();
CNVRTN[(DIST + 11)] = clist.next().unwrap().into_f64();
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::D(0.0254)].into_iter();
CNVRTN[(DIST + 12)] = clist.next().unwrap().into_f64();
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::D(1609.344)].into_iter();
CNVRTN[(DIST + 13)] = clist.next().unwrap().into_f64();
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::D(1852.0)].into_iter();
CNVRTN[(DIST + 14)] = clist.next().unwrap().into_f64();
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::D(0.9144)].into_iter();
CNVRTN[(DIST + 15)] = clist.next().unwrap().into_f64();
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::C(b"DISTANCE")].into_iter();
fstr::assign(TYPE.get_mut((DIST + 11)), clist.next().unwrap().into_str());
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::C(b"DISTANCE")].into_iter();
fstr::assign(TYPE.get_mut((DIST + 12)), clist.next().unwrap().into_str());
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::C(b"DISTANCE")].into_iter();
fstr::assign(TYPE.get_mut((DIST + 13)), clist.next().unwrap().into_str());
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::C(b"DISTANCE")].into_iter();
fstr::assign(TYPE.get_mut((DIST + 14)), clist.next().unwrap().into_str());
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::C(b"DISTANCE")].into_iter();
fstr::assign(TYPE.get_mut((DIST + 15)), clist.next().unwrap().into_str());
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::C(b"LIGHTYEARS")].into_iter();
fstr::assign(UNITS.get_mut((DIST + 16)), clist.next().unwrap().into_str());
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::C(b"PARSECS")].into_iter();
fstr::assign(UNITS.get_mut((DIST + 17)), clist.next().unwrap().into_str());
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::D(LTYEAR)].into_iter();
CNVRTN[(DIST + 16)] = clist.next().unwrap().into_f64();
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::D(PARSEC)].into_iter();
CNVRTN[(DIST + 17)] = clist.next().unwrap().into_f64();
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::C(b"DISTANCE")].into_iter();
fstr::assign(TYPE.get_mut((DIST + 16)), clist.next().unwrap().into_str());
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::C(b"DISTANCE")].into_iter();
fstr::assign(TYPE.get_mut((DIST + 17)), clist.next().unwrap().into_str());
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::C(b"SECONDS")].into_iter();
fstr::assign(UNITS.get_mut((TME + 1)), clist.next().unwrap().into_str());
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::C(b"MINUTES")].into_iter();
fstr::assign(UNITS.get_mut((TME + 2)), clist.next().unwrap().into_str());
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::C(b"HOURS")].into_iter();
fstr::assign(UNITS.get_mut((TME + 3)), clist.next().unwrap().into_str());
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::C(b"DAYS")].into_iter();
fstr::assign(UNITS.get_mut((TME + 4)), clist.next().unwrap().into_str());
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::C(b"JULIAN_YEARS")].into_iter();
fstr::assign(UNITS.get_mut((TME + 5)), clist.next().unwrap().into_str());
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::C(b"TROPICAL_YEARS")].into_iter();
fstr::assign(UNITS.get_mut((TME + 6)), clist.next().unwrap().into_str());
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::C(b"YEARS")].into_iter();
fstr::assign(UNITS.get_mut((TME + 7)), clist.next().unwrap().into_str());
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::D(1.0)].into_iter();
CNVRTN[(TME + 1)] = clist.next().unwrap().into_f64();
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::D(60.0)].into_iter();
CNVRTN[(TME + 2)] = clist.next().unwrap().into_f64();
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::D(3600.0)].into_iter();
CNVRTN[(TME + 3)] = clist.next().unwrap().into_f64();
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::D(86400.0)].into_iter();
CNVRTN[(TME + 4)] = clist.next().unwrap().into_f64();
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::D(SECPJY)].into_iter();
CNVRTN[(TME + 5)] = clist.next().unwrap().into_f64();
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::D(SECPTY)].into_iter();
CNVRTN[(TME + 6)] = clist.next().unwrap().into_f64();
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::D(SECPJY)].into_iter();
CNVRTN[(TME + 7)] = clist.next().unwrap().into_f64();
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::C(b"TIME")].into_iter();
fstr::assign(TYPE.get_mut((TME + 1)), clist.next().unwrap().into_str());
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::C(b"TIME")].into_iter();
fstr::assign(TYPE.get_mut((TME + 2)), clist.next().unwrap().into_str());
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::C(b"TIME")].into_iter();
fstr::assign(TYPE.get_mut((TME + 3)), clist.next().unwrap().into_str());
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::C(b"TIME")].into_iter();
fstr::assign(TYPE.get_mut((TME + 4)), clist.next().unwrap().into_str());
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::C(b"TIME")].into_iter();
fstr::assign(TYPE.get_mut((TME + 5)), clist.next().unwrap().into_str());
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::C(b"TIME")].into_iter();
fstr::assign(TYPE.get_mut((TME + 6)), clist.next().unwrap().into_str());
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
{
use f2rust_std::data::Val;
let mut clist = [Val::C(b"TIME")].into_iter();
fstr::assign(TYPE.get_mut((TME + 7)), clist.next().unwrap().into_str());
debug_assert!(clist.next().is_none(), "DATA not fully initialised");
}
Self {
UNITS,
CNVRTN,
TYPE,
FIRST,
}
}
}
pub fn convrt(
ctx: &mut SpiceContext,
x: f64,
in_: &str,
out: &str,
y: &mut f64,
) -> crate::Result<()> {
CONVRT(x, in_.as_bytes(), out.as_bytes(), y, ctx.raw_context())?;
ctx.handle_errors()?;
Ok(())
}
pub fn CONVRT(
X: f64,
IN: &[u8],
OUT: &[u8],
Y: &mut f64,
ctx: &mut Context,
) -> f2rust_std::Result<()> {
let save = ctx.get_vars::<SaveVars>();
let save = &mut *save.borrow_mut();
let mut INU = [b' '; 16];
let mut OUTU = [b' '; 16];
let mut I: i32 = 0;
let mut J: i32 = 0;
let mut TEMP: f64 = 0.0;
if RETURN(ctx) {
return Ok(());
}
CHKIN(b"CONVRT", ctx)?;
if save.FIRST {
save.CNVRTN[(ANG + 1)] = DPR(ctx);
save.FIRST = false;
}
UCASE(IN, &mut INU, ctx);
UCASE(OUT, &mut OUTU, ctx);
I = ISRCHC(&INU, TOTAL, save.UNITS.as_arg());
J = ISRCHC(&OUTU, TOTAL, save.UNITS.as_arg());
if ((I == 0) || (J == 0)) {
if ((I == 0) && (J == 0)) {
SETMSG(
&fstr::concat(
&fstr::concat(
&fstr::concat(
&fstr::concat(b"CONVRT: Neither the input units ", &INU),
b"nor the output units ",
),
&OUTU,
),
b"were recognized.",
),
ctx,
);
SIGERR(b"SPICE(UNITSNOTREC)", ctx)?;
CHKOUT(b"CONVRT", ctx)?;
return Ok(());
} else if (I == 0) {
SETMSG(
&fstr::concat(
&fstr::concat(b"CONVRT: Input units ", &INU),
b" were not recognized",
),
ctx,
);
SIGERR(b"SPICE(UNITSNOTREC)", ctx)?;
CHKOUT(b"CONVRT", ctx)?;
return Ok(());
} else if (J == 0) {
SETMSG(
&fstr::concat(
&fstr::concat(b"CONVRT: Output units ", &OUTU),
b" were not recognized",
),
ctx,
);
SIGERR(b"SPICE(UNITSNOTREC)", ctx)?;
CHKOUT(b"CONVRT", ctx)?;
return Ok(());
}
}
if fstr::ne(save.TYPE.get(I), save.TYPE.get(J)) {
SETMSG(&fstr::concat(&fstr::concat(&fstr::concat(&fstr::concat(&fstr::concat(&fstr::concat(&fstr::concat(&fstr::concat(b"CONVRT: Incompatible units. You are attempting to convert ", &INU), b"type: "), save.TYPE.get(I)), b" to "), &OUTU), b"type: "), save.TYPE.get(J)), b"."), ctx);
SIGERR(b"SPICE(INCOMPATIBLEUNITS)", ctx)?;
CHKOUT(b"CONVRT", ctx)?;
return Ok(());
}
TEMP = (X * save.CNVRTN[I]);
*Y = (TEMP / save.CNVRTN[J]);
CHKOUT(b"CONVRT", ctx)?;
Ok(())
}