package accessor_core

  1. Overview
  2. Docs

Source file accessor_time.ml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
open! Core
open! Import

let span_since_epoch =
  [%accessor
    Accessor.isomorphism ~get:Time.to_span_since_epoch ~construct:Time.of_span_since_epoch]
;;

let date_ofday zone =
  Accessor.isomorphism ~get:(Time.to_date_ofday ~zone) ~construct:(fun (date, ofday) ->
    Time.of_date_ofday date ofday ~zone)
;;

let date zone = date_ofday zone @> Accessor.Tuple2.fst
let ofday zone = date_ofday zone @> Accessor.Tuple2.snd

module Span = struct
  let ns =
    [%accessor Accessor.isomorphism ~get:Time.Span.to_ns ~construct:Time.Span.of_ns]
  ;;

  let us =
    [%accessor Accessor.isomorphism ~get:Time.Span.to_us ~construct:Time.Span.of_us]
  ;;

  let ms =
    [%accessor Accessor.isomorphism ~get:Time.Span.to_ms ~construct:Time.Span.of_ms]
  ;;

  let sec =
    [%accessor Accessor.isomorphism ~get:Time.Span.to_sec ~construct:Time.Span.of_sec]
  ;;

  let min =
    [%accessor Accessor.isomorphism ~get:Time.Span.to_min ~construct:Time.Span.of_min]
  ;;

  let hr =
    [%accessor Accessor.isomorphism ~get:Time.Span.to_hr ~construct:Time.Span.of_hr]
  ;;

  let day =
    [%accessor Accessor.isomorphism ~get:Time.Span.to_day ~construct:Time.Span.of_day]
  ;;
end