A context whose timeout can be reset. So one context can be used across multiple calls in a row.
e.g.
ctx := unicontext.WithTimeout(context.Background(), 1 * time.Second)
defer ctx.Cancel()
call1(ctx)
call2(ctx.Reset()) // Reset cancels previous context automatically and replace it with a new context
call3(ctx.ResetTimeout(2 * time.Second))