Improved error handling.
[?]
CrEcTsRjb1hHQjHuumqRfqdbVV4X58iLEubi4noaDPFa
Aug 2, 2021, 2:55 AM
53HEUVOVZQQCKIVT2NADM4PTGEMD5O7LJ3YGCPOIS54XXVTVDMVQCDependencies
- [2]
AY6BDSDQPrepare for change in error handling. - [3]
YAE43L6ACompleted first try at UIData. - [4]
XI5ALEH6Take advantage of keytree FromStr functionality. - [5]
AT753JPOSelected US unemployment series. - [6]
UUD3CJZLMaking error handling more comprehensive. - [7]
65C2F32DGeneralized to any data source and parser. - [8]
SPSFTMLRCompleted loading ts_data from specification. - [9]
5POF332LWorking on fn cpi_included(). - [10]
EHEK63WACleaning up ts.rs. - [11]
PQKGZNQGAdded class field to GraphicJson. - [12]
TTR5IFSGWorking on building generic TSSpec. - [13]
TSY4YBBZChanged ts Spec datastructures to new format. - [14]
XPXYFEZMFinished code for building TSJson struct. - [15]
K4CH53V4Added GPL2 license, included missing source files. - [16]
SAHJYVNBRemoved checking functionality. - [17]
GQVS55HIFinished generate_ts_spec() function. - [18]
2CCG6KUPRedo time-series spec. - [19]
5B2HBV3JCompleted first try at ts Json data-structure. - [20]
77SIQZ3ESeparating out spec generation. - [21]
E2T2A74YAdded class field to GraphicSpec. - [22]
PK7JY27RIntegrate date_range with transforms. - [23]
R2OU7BE4Added min and max values to json. - [*]
4MG5JFXTFirst record.
Change contents
- replacement in src/ui.rs at line 48
serialize_to_json_failed(file!(),line!(),)err(file!(), line!(), &format!("Serialize to JSON failed.")) - replacement in src/ui.rs at line 142[3.1760]→[3.1760:1798](∅→∅),[3.1798]→[3.322:356](∅→∅),[3.356]→[3.1835:1964](∅→∅),[3.1835]→[3.1835:1964](∅→∅)
Err(err) => { return Err(read_file_failed(file!(),line!(),&err.to_string()))},Err(_) => { return Err(err(file!(), line!(), &format!("Failed to read file {}", path)))}, - replacement in src/ui.rs at line 147
let out = kt.to_ref().try_into().map_err(|err: keytree::error::Error| {external(file!(), line!(), &err.to_string())let out = kt.to_ref().try_into().map_err(|e: keytree::error::Error| {err(file!(), line!(), &e.to_string()) - replacement in src/ui.rs at line 181
return Err(series_lookup_failed(file!(),line!(),&x.to_string(),))return Err(err(file!(), line!(), &format! ("Series {} lookup failed.", y))) - replacement in src/ui.rs at line 190
return Err(series_lookup_failed(file!(),line!(),&y.to_string(),))return Err(err(file!(), line!(), &format! ("Series {} lookup failed.", y))) - replacement in src/ui.rs at line 197
.map_err(|err| external(file!(), line!(), &err.to_string()))?;.map_err(|e| err(file!(), line!(), &e.to_string()))?; - replacement in src/ts.rs at line 31[3.320]→[3.320:351](∅→∅),[3.351]→[3.1280:1326](∅→∅),[3.1326]→[3.400:526](∅→∅),[3.400]→[3.400:526](∅→∅)
.map_err(|_| {serialize_to_json_failed(file!(),line!(),)})?;.map_err(|_| err(file!(), line!(), "Failed to serialize JSON."))?; - replacement in src/ts.rs at line 87[3.7233]→[3.7233:7271](∅→∅),[3.7271]→[3.1726:1760](∅→∅),[3.1760]→[3.7308:7437](∅→∅),[3.7308]→[3.7308:7437](∅→∅)
Err(err) => { return Err(read_file_failed(file!(),line!(),&err.to_string()))},Err(e) => { return Err(err(file!(), line!(), &format!("Failed to read {}.", e)))}, - replacement in src/ts.rs at line 94
let mut spec: Spec = kt.to_ref().try_into().map_err(|err: keytree::error::Error| {external(file!(), line!(), &err.to_string())let mut spec: Spec = kt.to_ref().try_into().map_err(|e: keytree::error::Error| {err(file!(), line!(), &e.to_string()) - replacement in src/ts.rs at line 170
return Err(expected_graphic_has_one_series(return Err(err( - replacement in src/ts.rs at line 173
&country.to_string(),&data_type.to_string(),*index,&format!("Expected graphic ({} {} {}) to have one series.",country,data_type,index,), - replacement in src/ts.rs at line 204
return Err(series_lookup_failed(return Err(err( - replacement in src/ts.rs at line 207
&series_id.to_string(),&format!("Failed to lookup {}.", &series_id.to_string()), - replacement in src/ts.rs at line 356
series_lookup_failed(file!(),line!(),&series_id.to_string() ,)err(file!(), line!(), &format!("Series {} lookup failed.", series_id.to_string())) - replacement in src/ts.rs at line 432
_ => Err(external(file!(), line!(), "Failed to parse to Text")),_ => Err(err(file!(), line!(), &format!("Failed to parse {}.", s))), - replacement in src/ts.rs at line 479
_ => Err(external(file!(), line!(), "Failed to parse GraphicClass")),_ => Err(err(file!(), line!(), "Failed to parse GraphicClass")), - replacement in src/ts.rs at line 576
_ => Err(parse_transform1_failed(file!(), line!(), s)),_ => Err(err(file!(), line!(), &format!("Could not parse {}", s))), - replacement in src/parser.rs at line 75
parse_datepoint_failed(file!(),line!(),&line.to_string(),&format!("{}, {}", obs.date, obs.value),err(file!(), line!(),&format!( "Failed to parse {}, {} at line {}.", obs.date, obs.value, &line), - replacement in src/parser.rs at line 83
parse_datepoint_failed(file!(),line!(),&line.to_string(),&format!("{}, {}", obs.date, obs.value),err(file!(), line!(),&format!("Failed to parse {}, {} at line {}.",obs.date,obs.value,&line.to_string(),), - replacement in src/parser.rs at line 99
parse_datepoint_failed(file!(),line!(),&line.to_string(),&format!("{}, {}", obs.date, obs.value),err(file!(), line!(),&format!("Failed to parse {}, {} at line {}.",obs.date,obs.value,&line,), - replacement in src/parser.rs at line 134
Err(err) => {return Err(fred_error(file!(),line!(),&err.to_string(),))Err(e) => {return Err(err(file!(), line!(), &e.to_string())) - replacement in src/parser.rs at line 148
expected_datapoint_found_dot(file!(),line!(),&format!("{}, {}", obs.date, obs.value),&(line_num + 1).to_string(),err(file!(), line!(),&format!("Expected datapoint found dot from obs: {}, {} at line {}.",obs.date,obs.value,&(line_num + 1).to_string(),), - replacement in src/parser.rs at line 162
.map_err(|err: time_series::error::Error| external(file!(), line!(), &err.to_string())).map_err(|e: time_series::error::Error| err(file!(), line!(), &e.to_string())) - replacement in src/parser.rs at line 195
Err(err) => { return Err(fred_error(file!(), line!(), &err.to_string())) },Err(e) => { return Err(err(file!(), line!(), &e.to_string())) }, - replacement in src/parser.rs at line 223
.map_err(|err| {expected_regular_time_series(file!(),line!(),&series_spec.country().to_string(),&series_spec.data_type.to_string(),&series_spec.series_id.to_string(),).map_err(|_| {err(file!(), line!(), &format!("Expected regular time-series ({} {} {})",&series_spec.country(),&series_spec.data_type,&series_spec.series_id,)) - edit in src/lib.rs at line 184
use keytree::error::keytree_selection_failed; - replacement in src/lib.rs at line 200
parse_datepoint_failed(file!(),line!(),"?",s,)err(file!(), line!(), &format!("Parse datapoint {} failed", s)) - replacement in src/lib.rs at line 204
parse_datepoint_failed(file!(),line!(),"?",s,)err(file!(), line!(), &format!("Parse datapoint {} failed", s)) - replacement in src/lib.rs at line 337
_ => Err(parse_datatype_failed(file!(), line!(), s)),_ => Err(err(file!(), line!(), &format!("Failed to parse datatype {}.", s))), - replacement in src/lib.rs at line 362
Err(err) => { return Err(fred_error(file!(), line!(), &err.to_string())) },Err(e) => { return Err(err(file!(), line!(), &e.to_string())) }, - replacement in src/lib.rs at line 550[3.684]→[3.14043:14081](∅→∅),[3.14081]→[3.13940:13974](∅→∅),[3.13974]→[3.14118:14247](∅→∅),[3.14118]→[3.14118:14247](∅→∅)
Err(err) => { return Err(read_file_failed(file!(),line!(),&err.to_string()))},Err(e) => { return Err(err(file!(), line!(), &format!("Failed to read file {}.", e)))}, - replacement in src/lib.rs at line 555
kt.to_ref().try_into().map_err(|err: keytree::error::Error| {external(file!(), line!(), &err.to_string())kt.to_ref().try_into().map_err(|e: keytree::error::Error| {err(file!(), line!(), &e.to_string()) - replacement in src/lib.rs at line 766[3.7247]→[3.7247:7325](∅→∅),[3.7325]→[3.16558:16600](∅→∅),[3.16600]→[3.7372:7607](∅→∅),[3.7372]→[3.7372:7607](∅→∅)
Err(err) => {return Err(external(file!(),line!(),&err.to_string(),))},Err(e) => { return Err(err(file!(), line!(), &e.to_string())) }, - replacement in src/lib.rs at line 780
.map_err(|err| {external(file!(), line!(), &err.to_string()).map_err(|e| {err(file!(), line!(), &e.to_string()) - replacement in src/lib.rs at line 785
.map_err(|err: time_series::error::Error| {external(file!(), line!(), &err.to_string()).map_err(|e: time_series::error::Error| {err(file!(), line!(), &e.to_string()) - replacement in src/lib.rs at line 822
.map_err(|err| create_dir_failed( file!(), line!(), &err.to_string()))?;.map_err(|e| err(file!(), line!(), &format!("Failed to create dir {}.", e)))?; - replacement in src/lib.rs at line 825
.map_err(|err| external(file!(), line!(), &err.to_string()))?;.map_err(|e| err(file!(), line!(), &e.to_string()))?; - replacement in src/lib.rs at line 834
.map_err(|err| external(file!(), line!(), &err.to_string()))?;.map_err(|e| err(file!(), line!(), &e.to_string()))?; - replacement in src/lib.rs at line 837
expected_series_data(file!(), line!(), &self.series_id.to_string())err(file!(), line!(), &format!("Expected series data for {}", self.series_id)) - replacement in src/lib.rs at line 850
.map_err(|err| external(file!(), line!(), &err.to_string()))?;.map_err(|e| err(file!(), line!(), &e.to_string()))?; - replacement in src/lib.rs at line 853
.map_err(|err| create_dir_failed( file!(), line!(), &err.to_string()))?;.map_err(|e| err(file!(), line!(), &format!("Failed to create dir {}", e)))?; - replacement in src/lib.rs at line 859
.map_err(|err| external(file!(), line!(), &err.to_string()))?;.map_err(|e| err(file!(), line!(), &e.to_string()))?; - replacement in src/lib.rs at line 943
(true, true) => Err(custom(file!(), line!(), "Only one parser allowed."))?,(true, true) => Err(keytree::error::err(file!(), line!(), "Only one parser allowed."))?, - replacement in src/lib.rs at line 1070
parse_graphic_range_failed(file!(),line!(),s))err(file!(), line!(), &format!("Parse graphic range {} failed", s))) - replacement in src/lib.rs at line 1073
.map_err(|_| parse_graphic_range_failed(file!(), line!(), s))?;.map_err(|_| err(file!(), line!(), &format!("Parse graphic range {} failed", s)))?; - replacement in src/lib.rs at line 1076
.map_err(|_| parse_graphic_range_failed(file!(), line!(), s))?;.map_err(|_| err(file!(), line!(), &format!("Parse graphic range {} failed", s)))?; - edit in src/fred.rs at line 94[3.8582]→[3.8582:8663](∅→∅),[3.8663]→[3.21686:21731](∅→∅),[3.21731]→[3.8708:8875](∅→∅),[3.8708]→[3.8708:8875](∅→∅)
},Err(err) => {return Err(fred_request_failed(file!(),line!(),&err.to_string())) - edit in src/fred.rs at line 95
Err(e) => { return Err(err( file!(), line!(), &e.to_string())) }, - edit in src/fred.rs at line 139[3.10421]→[3.10421:10502](∅→∅),[3.10502]→[3.21810:21855](∅→∅),[3.21855]→[3.10547:10714](∅→∅),[3.10547]→[3.10547:10714](∅→∅)
},Err(err) => {return Err(fred_request_failed(file!(),line!(),&err.to_string())) - edit in src/fred.rs at line 140
Err(e) => { return Err(err(file!(), line!(), &e.to_string())) }, - edit in src/error.rs at line 10[3.14778]→[3.14778:14781](∅→∅),[3.14781]→[3.22205:22443](∅→∅),[3.22443]→[3.14785:14927](∅→∅),[3.14785]→[3.14785:14927](∅→∅),[3.14927]→[3.22444:22509](∅→∅),[3.22509]→[3.14995:15073](∅→∅),[3.14995]→[3.14995:15073](∅→∅),[3.15073]→[3.22510:22812](∅→∅),[3.22812]→[3.1350:1421](∅→∅),[3.15073]→[3.1350:1421](∅→∅),[3.1421]→[3.4416:4503](∅→∅),[3.4503]→[3.1450:1471](∅→∅),[3.1450]→[3.1450:1471](∅→∅),[3.1471]→[3.22813:22903](∅→∅),[3.4597]→[3.1553:1591](∅→∅),[3.22903]→[3.1553:1591](∅→∅),[3.1553]→[3.1553:1591](∅→∅),[3.1591]→[3.4598:4649](∅→∅),[3.4649]→[3.22904:23172](∅→∅),[3.1591]→[3.15073:15196](∅→∅),[3.4649]→[3.15073:15196](∅→∅),[3.23172]→[3.15073:15196](∅→∅),[3.15073]→[3.15073:15196](∅→∅),[3.15217]→[3.15217:15236](∅→∅),[3.15236]→[3.9168:9189](∅→∅),[3.9189]→[3.15236:15287](∅→∅),[3.15236]→[3.15236:15287](∅→∅),[3.15287]→[3.23173:23247](∅→∅),[3.1669]→[3.15364:15402](∅→∅),[3.23247]→[3.15364:15402](∅→∅),[3.15364]→[3.15364:15402](∅→∅),[3.15402]→[3.9190:9207](∅→∅),[3.9207]→[3.15402:15421](∅→∅),[3.15402]→[3.15402:15421](∅→∅),[3.15438]→[3.15438:15457](∅→∅),[3.15457]→[3.9208:9321](∅→∅),[3.9321]→[3.23248:23288](∅→∅),[3.1713]→[3.9364:9415](∅→∅),[3.23288]→[3.9364:9415](∅→∅),[3.9364]→[3.9364:9415](∅→∅),[3.9415]→[3.15457:15467](∅→∅),[3.15457]→[3.15457:15467](∅→∅),[3.15467]→[3.23289:23308](∅→∅),[3.23308]→[3.15499:15520](∅→∅),[3.15499]→[3.15499:15520](∅→∅),[3.15520]→[3.23309:23338](∅→∅),[3.23338]→[3.15564:15585](∅→∅),[3.15564]→[3.15564:15585](∅→∅),[3.15585]→[3.23339:23378](∅→∅),[3.1771]→[3.15642:15680](∅→∅),[3.23378]→[3.15642:15680](∅→∅),[3.15642]→[3.15642:15680](∅→∅),[3.15693]→[3.15693:15703](∅→∅),[3.15703]→[3.23379:23407](∅→∅),[3.23407]→[3.15736:15822](∅→∅),[3.15736]→[3.15736:15822](∅→∅),[3.15822]→[3.23408:23462](∅→∅),[3.1840]→[3.15890:15951](∅→∅),[3.23462]→[3.15890:15951](∅→∅),[3.15890]→[3.15890:15951](∅→∅),[3.15951]→[3.23463:23491](∅→∅),[3.23491]→[3.15983:16004](∅→∅),[3.15983]→[3.15983:16004](∅→∅),[3.16004]→[3.23492:23521](∅→∅),[3.23521]→[3.16053:16074](∅→∅),[3.16053]→[3.16053:16074](∅→∅),[3.16074]→[3.23522:23570](∅→∅),[3.1897]→[3.16130:16168](∅→∅),[3.23570]→[3.16130:16168](∅→∅),[3.16130]→[3.16130:16168](∅→∅),[3.16187]→[3.16187:16197](∅→∅),[3.16197]→[3.23571:23600](∅→∅),[3.23600]→[3.9670:9762](∅→∅),[3.9670]→[3.9670:9762](∅→∅),[3.9762]→[3.23601:23677](∅→∅),[3.1977]→[3.9841:9898](∅→∅),[3.3648]→[3.9841:9898](∅→∅),[3.23677]→[3.9841:9898](∅→∅),[3.9841]→[3.9841:9898](∅→∅),[3.3853]→[3.3853:3863](∅→∅),[3.3863]→[3.23678:23703](∅→∅),[3.23703]→[3.16230:16321](∅→∅),[3.16230]→[3.16230:16321](∅→∅),[3.16321]→[3.23704:23757](∅→∅),[3.2095]→[3.16378:16416](∅→∅),[3.23757]→[3.16378:16416](∅→∅),[3.16378]→[3.16378:16416](∅→∅),[3.16416]→[3.23758:23777](∅→∅),[3.23777]→[3.16434:16444](∅→∅),[3.16434]→[3.16434:16444](∅→∅),[3.16444]→[3.23778:23812](∅→∅),[3.23812]→[3.16467:16538](∅→∅),[3.16467]→[3.16467:16538](∅→∅),[3.16538]→[3.23813:23869](∅→∅),[3.2138]→[3.16580:16628](∅→∅),[3.23869]→[3.16580:16628](∅→∅),[3.16580]→[3.16580:16628](∅→∅),[3.16632]→[3.16632:16737](∅→∅),[3.16737]→[3.23870:23913](∅→∅),[3.2185]→[3.16783:16844](∅→∅),[3.23913]→[3.16783:16844](∅→∅),[3.16783]→[3.16783:16844](∅→∅),[3.16848]→[3.16848:16987](∅→∅),[3.16987]→[3.23914:23973](∅→∅),[3.2248]→[3.17049:17137](∅→∅),[3.23973]→[3.17049:17137](∅→∅),[3.17049]→[3.17049:17137](∅→∅),[3.17137]→[3.23974:24004](∅→∅),[3.24004]→[3.17159:17200](∅→∅),[3.17159]→[3.17159:17200](∅→∅),[3.17200]→[3.24005:24027](∅→∅),[3.24027]→[3.17224:17245](∅→∅),[3.17224]→[3.17224:17245](∅→∅),[3.17245]→[3.24028:24098](∅→∅),[3.2297]→[3.17293:17331](∅→∅),[3.24098]→[3.17293:17331](∅→∅),[3.17293]→[3.17293:17331](∅→∅),[3.17331]→[3.24099:24110](∅→∅),[3.24110]→[3.17343:17353](∅→∅),[3.17343]→[3.17343:17353](∅→∅),[3.17353]→[3.24111:24142](∅→∅),[3.24142]→[3.17380:17421](∅→∅),[3.17380]→[3.17380:17421](∅→∅),[3.17421]→[3.24143:24190](∅→∅),[3.24190]→[3.17445:17464](∅→∅),[3.17445]→[3.17445:17464](∅→∅),[3.17464]→[3.24191:24275](∅→∅),[3.2371]→[3.17537:17575](∅→∅),[3.24275]→[3.17537:17575](∅→∅),[3.17537]→[3.17537:17575](∅→∅),[3.17575]→[3.24276:24307](∅→∅),[3.24307]→[3.17586:17596](∅→∅),[3.17586]→[3.17586:17596](∅→∅),[3.17600]→[3.17600:17798](∅→∅),[3.17798]→[3.24308:24387](∅→∅),[3.2454]→[3.17880:18012](∅→∅),[3.24387]→[3.17880:18012](∅→∅),[3.17880]→[3.17880:18012](∅→∅),[3.18012]→[3.24388:24423](∅→∅),[3.24423]→[3.18035:18098](∅→∅),[3.18035]→[3.18035:18098](∅→∅),[3.18098]→[3.24424:24426](∅→∅),[3.24426]→[3.18101:18120](∅→∅),[3.18101]→[3.18101:18120](∅→∅),[3.18120]→[3.24427:24487](∅→∅),[3.2524]→[3.18189:18248](∅→∅),[3.24487]→[3.18189:18248](∅→∅),[3.18189]→[3.18189:18248](∅→∅),[3.18248]→[3.24488:24516](∅→∅),[3.24516]→[3.18276:18360](∅→∅),[3.18276]→[3.18276:18360](∅→∅),[3.18360]→[3.24517:24576](∅→∅),[3.2599]→[3.18434:18472](∅→∅),[3.24576]→[3.18434:18472](∅→∅),[3.18434]→[3.18434:18472](∅→∅),[3.18472]→[3.24577:24587](∅→∅),[3.24587]→[3.18483:18493](∅→∅),[3.18483]→[3.18483:18493](∅→∅),[3.18493]→[3.24588:24619](∅→∅),[3.24619]→[3.18522:18606](∅→∅),[3.18522]→[3.18522:18606](∅→∅),[3.18606]→[3.24620:24691](∅→∅),[3.2675]→[3.18681:18740](∅→∅),[3.24691]→[3.18681:18740](∅→∅),[3.18681]→[3.18681:18740](∅→∅),[3.18740]→[3.24692:24724](∅→∅),[3.24724]→[3.18769:18853](∅→∅),[3.18769]→[3.18769:18853](∅→∅),[3.18853]→[3.24725:24797](∅→∅),[3.2751]→[3.18928:18987](∅→∅),[3.24797]→[3.18928:18987](∅→∅),[3.18928]→[3.18928:18987](∅→∅),[3.18987]→[3.24798:24830](∅→∅),[3.24830]→[3.19025:19066](∅→∅),[3.19025]→[3.19025:19066](∅→∅),[3.19066]→[3.24831:24853](∅→∅),[3.24853]→[3.19096:19117](∅→∅),[3.19096]→[3.19096:19117](∅→∅),[3.19117]→[3.24854:24926](∅→∅),[3.2813]→[3.19178:19216](∅→∅),[3.24926]→[3.19178:19216](∅→∅),[3.19178]→[3.19178:19216](∅→∅),[3.19216]→[3.24927:24938](∅→∅),[3.24938]→[3.19235:19245](∅→∅),[3.19235]→[3.19235:19245](∅→∅),[3.19245]→[3.24939:24973](∅→∅),[3.24973]→[3.19279:19320](∅→∅),[3.19279]→[3.19279:19320](∅→∅),[3.19320]→[3.24974:25004](∅→∅),[3.25004]→[3.19368:19389](∅→∅),[3.19368]→[3.19368:19389](∅→∅),[3.19389]→[3.25005:25063](∅→∅),[3.2924]→[3.19499:19556](∅→∅),[3.25063]→[3.19499:19556](∅→∅),[3.19499]→[3.19499:19556](∅→∅),[3.19572]→[3.19572:19579](∅→∅)
}pub fn create_dir_failed(code_file: &str,code_line: u32,msg: &str) -> Error{Error(format!("[ui_data::{}:{}] Failed to create dir with msg: [{}].",code_file,code_line,msg,))}pub fn data_type_mismatch(code_file: &str,code_line: u32,data_type1: &str,data_type2: &str) -> Error{Error(format!("[ui_data:{}:{}] Datatypes [{}] and [{}] do not match.",code_file,code_line,data_type1,data_type2,))}pub fn expected_datapoint_found_dot(code_file: &str,code_line: u32,line_num: &str,line_str: &str) -> Error{Error(format!("[ui*date:{}:{}] Line [{}] is [{}] but expected datapoint.]",code_file,code_line,line_num,line_str,))}pub fn expected_graphic_has_one_series(code_file: &str,code_line: u32,country: &str,data_type: &str,index: usize) -> Error{Error(format!("[ui_data:{}:{}] [{} {} {}] Expected source graphic to have exactly one series.",code_file,code_line,country,data_type,index,))}pub fn expected_series_data(code_file: &str,code_line: u32,series_id: &str) -> Error{Error(format!("[ui_data:{}:{}] Expected series data from series [{}] but was empty.",code_file,code_line,series_id,))}/// Handle error from time-series.pub fn expected_regular_time_series(code_file: &str,code_line: u32,country: &str,data_type: &str,series_id: &str) -> Error{Error(format!("[ui_data:{}:{}] Expected regular time-series from [{} {} {}].",code_file,code_line,country,data_type,series_id,))}pub fn external(code_file: &str,code_line: u32,msg: &str) -> Error{Error(format!("[ui_data:{}:{}] External: {}",code_file,code_line,msg,))}pub fn file_error(code_file: &str,code_line: u32) -> Error{Error(format!("[ui_data:{}:{}] File error.",code_file,code_line,))}pub fn fred_request_failed(code_file: &str,code_line: u32,msg: &str) -> Error{Error(format!("[ui_data:{}]{}] Fred request failed: [{}].",code_file,code_line,msg,))}pub fn into_keytree_failed(code_file: &str,code_line: u32) -> Error{Error(format!("[ui_data:{}:{}] Into keytree failed.",code_file,code_line,))}pub fn series_lookup_failed(code_file: &str,code_line: u32,series_id: &str) -> Error{Error(format!("[ui_data:{}:{}] Could not find graphic reference [{}] in series.",code_file,code_line,series_id,))}pub fn read_file_failed(code_file: &str,code_line: u32,filename: &str) -> Error{Error(format!("[ui_data:{}:{}] Failed to read file [{}].",code_file,code_line,filename,))}pub fn serialize_to_json_failed(code_file: &str,code_line: u32) -> Error{Error(format!("[ui_data:{}:{}] Failed to serialize to json.",code_file,code_line,))}pub fn fred_error(code_file: &str,code_line: u32,msg: &str) -> Error{Error(format!("ui_data:{}:{}] Fred error [{}].",code_file,code_line,msg,))}pub fn key_not_in_dataspec(code_file: &str,code_line: u32,data_type: &str,country: &str) -> Error{Error(format!("[ui_data:{}:{}] Key [({}, {})] not in dataspec.",code_file,code_line,data_type,country,))}///pub fn parse_datatype_failed(code_file: &str,code_line: u32,s: &str) -> Error{Error(format!("[ui_data:{}:{}] Failed to parse datatype from string [{}].",code_file,code_line,s,))}pub fn parse_datepoint_failed(code_file: &str,code_line: u32,line: &str,obs_str: &str) -> Error{Error(format!("[ui_data:{}:{}] Failed to parse datepoint at line [{}] from string [{}].",code_file,code_line,line,obs_str,))}pub fn parse_fred_value_failed(code_file: &str,code_line: u32,data_type: &str,country: &str,series: &str,line_str: &str,line: usize) -> Error{Error(format!("[ui_data:{}:{}] [{} {} {}] Parse Fred value [{}] failed on line {}.",code_file,code_line,data_type,country,series,line_str,line,))}pub fn parse_graphic_range_failed(code_file: &str,code_line: u32,s: &str) -> Error{Error(format!("[ui_data:{}:{}] Parse graphic range [{}] failed.",code_file,code_line,s,))}pub fn parse_parser_failed(code_file: &str,code_line: u32,s: &str) -> Error{Error(format!("[ui_data::{}:{}] Parse parser type [{}] failed.",code_file,code_line,s))}pub fn parse_timestamp_failed(code_file: &str,code_line: u32,s: &str) -> Error{Error(format!("[ui_data:{}:{}] Failed to parse timestamp from string [{}].",code_file,code_line,s,))}pub fn parse_transform1_failed(code_file: &str,code_line: u32,s: &str) -> Error{Error(format!("[ui_data:{}:{}] Failed to parse transform1 from string [{}].",code_file,code_line,s,))}pub fn parse_transform2_failed(code_file: &str,code_line: u32,s: &str) -> Error{Error(format!("[ui_data:{}:{}] Failed to parse transform2 from string [{}].",code_file,code_line,s,))}pub fn series_id_not_in_dataspec(code_file: &str,code_line: u32,series_id: &str) -> Error{Error(format!("[ui_data:{}:{}] SeriesId [{}] not in DataSpec.",code_file,code_line,series_id,)) - replacement in src/error.rs at line 12
pub fn series_is_empty(code_file: &str,code_line: u32,country: &str,data_type: &str) -> Error{pub fn err(code_file: &str, code_line: u32, msg: &str) -> Error { - replacement in src/error.rs at line 14
"[ui_data:{}:{}] Series [{} {}] is empty.","[ui_data:{}:{}] {}", - edit in src/error.rs at line 17[3.19815]→[3.19815:19860](∅→∅),[3.19861]→[3.9416:9417](∅→∅),[3.19866]→[3.19866:20049](∅→∅),[3.20049]→[3.25117:25208](∅→∅),[3.3075]→[3.20143:20236](∅→∅),[3.25208]→[3.20143:20236](∅→∅),[3.20143]→[3.20143:20236](∅→∅)
country,data_type,))}pub fn time_series_from_csv_failed(code_file: &str,code_line: u32,data_type: &str,country: &str,series_id: &str,msg: &str) -> Error{Error(format!("[ui_data:{}:{}] Failed to parse time-series from csv [{} {} {}] with msg: [{}].",code_file,code_line,data_type,country,series_id, - edit in src/error.rs at line 20[3.20258]→[3.20258:20259](∅→∅),[3.20259]→[3.25209:25445](∅→∅),[3.25445]→[3.9419:9420](∅→∅),[3.9419]→[3.9419:9420](∅→∅)
pub fn write_file_failed(code_file: &str,code_line: u32,filename: &str) -> Error{Error(format!("[ui_data:{}:{}] Failed to write file [{}].",code_file,code_line,filename,))}