aboutsummaryrefslogtreecommitdiff
path: root/std/async.pk
blob: 7c76076474beedddf68a4d989a233d6d7ce04924 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
## std.async: Zig-style colourless async/await.
## Future types, the async macro, and the await function.

## A standard Future type. Opaque.
pub type Future[T] = struct
  ...

## The `async` macro transforms any function call into
## an asynchronous call returning a Future of some type.
pub macro async[T](call: T): Future[T] =
  ...

## The `await` function blocks on a Future[T] call until it returns a value.
pub func await[T](self: Future[T]): T =
  ...

examples:
  std.net.connect()
  print 1.async.await