pub fn pp_fields_for(record_type: &str) -> Option<&'static [&'static str]> {
const MBB_PP: &[&str] = &[
"VAL", "ZRVL", "ONVL", "TWVL", "THVL", "FRVL", "FVVL", "SXVL", "SVVL", "EIVL", "NIVL",
"TEVL", "ELVL", "TVVL", "TTVL", "FTVL", "FFVL", "ZRST", "ONST", "TWST", "THST", "FRST",
"FVST", "SXST", "SVST", "EIST", "NIST", "TEST", "ELST", "TVST", "TTST", "FTST", "FFST",
"ZRSV", "ONSV", "TWSV", "THSV", "FRSV", "FVSV", "SXSV", "SVSV", "EISV", "NISV", "TESV",
"ELSV", "TVSV", "TTSV", "FTSV", "FFSV", "UNSV", "COSV", "RVAL",
];
Some(match record_type {
"ai" => &[
"VAL", "LINR", "EGUF", "EGUL", "AOFF", "ASLO", "HIHI", "LOLO", "HIGH", "LOW", "HHSV",
"LLSV", "HSV", "LSV", "ESLO", "EOFF", "ROFF", "RVAL",
],
"ao" => &[
"VAL", "LINR", "EGUF", "EGUL", "ROFF", "EOFF", "ESLO", "DRVH", "DRVL", "AOFF", "ASLO",
"HIHI", "LOLO", "HIGH", "LOW", "HHSV", "LLSV", "HSV", "LSV", "RVAL",
],
"bi" => &["VAL", "ZSV", "OSV", "COSV", "ZNAM", "ONAM", "RVAL"],
"bo" => &["VAL", "ZNAM", "ONAM", "RVAL", "ZSV", "OSV", "COSV"],
"busy" => &["VAL", "ZNAM", "ONAM", "RVAL", "ZSV", "OSV", "COSV"],
"calc" => &[
"CALC", "HIHI", "LOLO", "HIGH", "LOW", "HHSV", "LLSV", "HSV", "LSV", "A", "B", "C",
"D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T",
"U",
],
"calcout" => &[
"CALC", "OCAL", "HIHI", "LOLO", "HIGH", "LOW", "HHSV", "LLSV", "HSV", "LSV", "A", "B",
"C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S",
"T", "U",
],
"compress" => &["VAL"],
"dfanout" => &[
"VAL", "HIHI", "LOLO", "HIGH", "LOW", "HHSV", "LLSV", "HSV", "LSV",
],
"event" => &[],
"fanout" => &["VAL"],
"histogram" => &[],
"int64in" => &[
"VAL", "HIHI", "LOLO", "HIGH", "LOW", "HHSV", "LLSV", "HSV", "LSV",
],
"int64out" => &[
"VAL", "DRVH", "DRVL", "HIHI", "LOLO", "HIGH", "LOW", "HHSV", "LLSV", "HSV", "LSV",
],
"longin" => &[
"VAL", "HIHI", "LOLO", "HIGH", "LOW", "HHSV", "LLSV", "HSV", "LSV",
],
"longout" => &[
"VAL", "DRVH", "DRVL", "HIHI", "LOLO", "HIGH", "LOW", "HHSV", "LLSV", "HSV", "LSV",
],
"lsi" => &["VAL"],
"lso" => &["VAL"],
"mbbi" => MBB_PP,
"mbbo" => MBB_PP,
"mbbiDirect" => &[
"VAL", "RVAL", "B0", "B1", "B2", "B3", "B4", "B5", "B6", "B7", "B8", "B9", "BA", "BB",
"BC", "BD", "BE", "BF", "B10", "B11", "B12", "B13", "B14", "B15", "B16", "B17", "B18",
"B19", "B1A", "B1B", "B1C", "B1D", "B1E", "B1F",
],
"mbboDirect" => &[
"VAL", "OMSL", "RVAL", "B0", "B1", "B2", "B3", "B4", "B5", "B6", "B7", "B8", "B9",
"BA", "BB", "BC", "BD", "BE", "BF", "B10", "B11", "B12", "B13", "B14", "B15", "B16",
"B17", "B18", "B19", "B1A", "B1B", "B1C", "B1D", "B1E", "B1F",
],
"motor" => &[
"OFF",
"DIR",
"SREV",
"UREV",
"MRES",
"ERES",
"UEIP",
"URIP",
"HLM",
"LLM",
"DHLM",
"DLLM",
"HIHI",
"LOLO",
"HIGH",
"LOW",
"HHSV",
"LLSV",
"HSV",
"LSV",
"HLSV",
"SPMG",
"STOP",
"HOMF",
"HOMR",
"JOGF",
"JOGR",
"TWF",
"TWR",
"VAL",
"DVAL",
"RVAL",
"RLV",
"CNEN",
"STUP",
"SYNC",
"PCOF",
"ICOF",
"DCOF",
"JVEL",
"PCO_ENABLE",
],
"printf" => &["VAL", "FMT"],
"sel" => &[
"HIHI", "LOLO", "HIGH", "LOW", "HHSV", "LLSV", "HSV", "LSV", "A", "B", "C", "D", "E",
"F", "G", "H", "I", "J", "K", "L",
],
"seq" => &["VAL"],
"stringin" => &["VAL", "SVAL"],
"stringout" => &["VAL"],
"sub" => &[
"VAL", "HIHI", "LOLO", "HIGH", "LOW", "BRSV", "HHSV", "LLSV", "HSV", "LSV", "A", "B",
"C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S",
"T", "U",
],
"aSub" => &["BRSV"],
"waveform" => &["VAL", "RARM"],
"aai" => &["VAL"],
"aao" => &["VAL"],
"subArray" => &["VAL", "NELM", "INDX"],
"scalcout" => &[
"CALC", "OCAL", "HIHI", "LOLO", "HIGH", "LOW", "HHSV", "LLSV", "HSV", "LSV", "A", "B",
"C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "AA", "BB", "CC", "DD", "EE", "FF",
"GG", "HH", "II", "JJ", "KK", "LL",
],
"swait" => &["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L"],
"transform" => &[
"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P",
],
"sseq" => &["VAL"],
_ => return None,
})
}