23 lines
		
	
	
		
			727 B
		
	
	
	
		
			Go
		
	
	
			
		
		
	
	
			23 lines
		
	
	
		
			727 B
		
	
	
	
		
			Go
		
	
	
package context
 | 
						|
 | 
						|
import "context"
 | 
						|
 | 
						|
type versionKey struct{}
 | 
						|
 | 
						|
func (versionKey) String() string { return "version" }
 | 
						|
 | 
						|
// WithVersion stores the application version in the context. The new context
 | 
						|
// gets a logger to ensure log messages are marked with the application
 | 
						|
// version.
 | 
						|
func WithVersion(ctx context.Context, version string) context.Context {
 | 
						|
	ctx = context.WithValue(ctx, versionKey{}, version)
 | 
						|
	// push a new logger onto the stack
 | 
						|
	return WithLogger(ctx, GetLogger(ctx, versionKey{}))
 | 
						|
}
 | 
						|
 | 
						|
// GetVersion returns the application version from the context. An empty
 | 
						|
// string may returned if the version was not set on the context.
 | 
						|
func GetVersion(ctx context.Context) string {
 | 
						|
	return GetStringValue(ctx, versionKey{})
 | 
						|
}
 |