data_faking/data/datetime/
time_naive.rs1use wasm_bindgen::prelude::*;
2use chrono::{NaiveTime};
3use super::internals::{gen_hms, gen_micro, gen_milli, gen_nano};
4
5const TIME_FORMAT: &str = "%H:%M:%S";
6const TIME_FORMAT_MILLI: &str = "%H:%M:%S%.3f";
7const TIME_FORMAT_MICRO: &str = "%H:%M:%S%.6f";
8const TIME_FORMAT_NANO: &str = "%H:%M:%S%.9f";
9
10#[wasm_bindgen]
11pub fn time_naive() -> String {
12 let nto = gen_time_naive();
13 if nto.is_none() {
14 return "".to_string();
15 }
16 return nto.unwrap().format(TIME_FORMAT).to_string();
17}
18
19#[wasm_bindgen]
20pub fn time_naive_milli() -> String {
21 let nto = gen_time_naive_milli();
22 if nto.is_none() {
23 return "".to_string();
24 }
25 return nto.unwrap().format(TIME_FORMAT_MILLI).to_string();
26}
27
28#[wasm_bindgen]
29pub fn time_naive_micro() -> String {
30 let nto = gen_time_naive_micro();
31 if nto.is_none() {
32 return "".to_string();
33 }
34 return nto.unwrap().format(TIME_FORMAT_MICRO).to_string();
35}
36
37#[wasm_bindgen]
38pub fn time_naive_nano() -> String {
39 let nto = gen_time_naive_nano();
40 if nto.is_none() {
41 return "".to_string();
42 }
43 return nto.unwrap().format(TIME_FORMAT_NANO).to_string();
44}
45
46pub fn gen_time_naive() -> Option<NaiveTime> {
47 let (hour, min, sec) = gen_hms();
48 NaiveTime::from_hms_opt(hour, min, sec)
49}
50
51pub fn gen_time_naive_milli() -> Option<NaiveTime> {
52 let (hour, min, sec) = gen_hms();
53 let milli = gen_milli();
54 NaiveTime::from_hms_milli_opt(hour, min, sec, milli)
55}
56
57pub fn gen_time_naive_micro() -> Option<NaiveTime> {
58 let (hour, min, sec) = gen_hms();
59 let micro = gen_micro();
60 NaiveTime::from_hms_micro_opt(hour, min, sec, micro)
61}
62
63pub fn gen_time_naive_nano() -> Option<NaiveTime> {
64 let (hour, min, sec) = gen_hms();
65 let nano = gen_nano();
66 NaiveTime::from_hms_nano_opt(hour, min, sec, nano)
67}