THIS REPOSITORY WAS MOVED TO THE STANDARD V LIB
V Lib module context.onecontext
One Context
vlang.io
A library to merge existing V contexts
Overview
Have you ever faced the situation where you have to merge multiple existing contexts? If not, then you might, eventually.
For example, we can face the situation where we are building an application using a library that gives us a global context. This context expires once the application is stopped.
Meanwhile, we are exposing a service like this:
fn (f Foo) get(ctx context.Context, bar Bar) ?Baz {
. . .
}
Here, we receive another context provided by the service.
Then, in the
get
Ideally, we would like to provide a merged context that would expire either:
- When the application is stopped
- Or when the received service context expires
This is exactly the purpose of this library.
In our case, we can now merge the two contexts in a single one like this:
ctx, cancel := onecontext.merge(ctx1, ctx2)
This returns a merged context that we can now propagate.
Install onecontext
Via vpm
$ v install ulises-jeremias.onecontext
Via vpkg
$ vpkg get https://github.com/ulises-jeremias/onecontext
Done. Installation completed.
Testing
To test the module, just type the following command:
$ ./bin/test # execute `./bin/test -h` to know more about the test command