Skip to content

Commit

Permalink
feat: 馃幐 monotonic and realTime lambdas in Clock class
Browse files Browse the repository at this point in the history
  • Loading branch information
imrafaelmerino committed Feb 8, 2021
1 parent cf14590 commit 0f21aba
Showing 1 changed file with 24 additions and 0 deletions.
24 changes: 24 additions & 0 deletions src/main/java/vertx/effect/Clock.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package vertx.effect;

import vertx.effect.exp.Cons;

import java.time.Duration;
import java.util.concurrent.TimeUnit;

public final class Clock {

private Clock(){}

public static <Void,Long> monotonic = v -> Cons.success(System.nanoTime());

public static <Void,Long> realTime = v -> Cons.success(System.currentTimeMillis());

public static <Void,Long> monotonic(TimeUnit unit){
return v -> monotonic.apply(null).map( time -> unit.convert(Duration.ofNanos(time)));
}

public static <Void,Long> realTime(TimeUnit unit){
return v -> realTime.apply(null).map( time -> unit.convert(Duration.ofMillis(time)));
}

}

0 comments on commit 0f21aba

Please sign in to comment.