(t: StructTimeData, vm: &VirtualMachine)
| 565 | |
| 566 | #[pyfunction] |
| 567 | fn mktime(t: StructTimeData, vm: &VirtualMachine) -> PyResult<f64> { |
| 568 | #[cfg(unix)] |
| 569 | { |
| 570 | unix_mktime(&t, vm) |
| 571 | } |
| 572 | |
| 573 | #[cfg(windows)] |
| 574 | { |
| 575 | win_mktime(&t, vm) |
| 576 | } |
| 577 | |
| 578 | #[cfg(not(any(unix, windows)))] |
| 579 | { |
| 580 | let datetime = t.to_date_time(vm)?; |
| 581 | // mktime interprets struct_time as local time |
| 582 | let local_dt = chrono::Local |
| 583 | .from_local_datetime(&datetime) |
| 584 | .single() |
| 585 | .ok_or_else(|| vm.new_overflow_error("mktime argument out of range"))?; |
| 586 | let seconds_since_epoch = local_dt.timestamp() as f64; |
| 587 | Ok(seconds_since_epoch) |
| 588 | } |
| 589 | } |
| 590 | |
| 591 | #[cfg(not(any(unix, windows)))] |
| 592 | const CFMT: &str = "%a %b %e %H:%M:%S %Y"; |
no test coverage detected