2021-04-12 19:32:51 +03:00
|
|
|
import context
|
|
|
|
|
|
|
|
type ValueContextKey = string
|
|
|
|
|
|
|
|
// This example demonstrates how a value can be passed to the context
|
|
|
|
// and also how to retrieve it if it exists.
|
|
|
|
fn test_with_value() {
|
2021-04-13 07:04:13 +03:00
|
|
|
f := fn (ctx context.Context, key ValueContextKey) string {
|
2021-04-12 19:32:51 +03:00
|
|
|
if value := ctx.value(key) {
|
|
|
|
if !isnil(value) {
|
|
|
|
return *(&string(value))
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return 'key not found'
|
|
|
|
}
|
|
|
|
|
|
|
|
key := ValueContextKey('language')
|
|
|
|
value := 'VAL'
|
|
|
|
ctx := context.with_value(context.background(), key, &value)
|
|
|
|
|
|
|
|
assert value == f(ctx, key)
|
|
|
|
assert 'key not found' == f(ctx, ValueContextKey('color'))
|
|
|
|
}
|