Leon4gr45's picture
Upload folder using huggingface_hub (part 9)
fea99b3 verified
Raw
History Blame Contribute Delete
934 Bytes
package transaction
import (
"context"
)
type omTransactionContextKey string
const contextKey omTransactionContextKey = "om_transaction_context_key"
func GetDriverFromContext(ctx context.Context) (Driver, error) {
tx, ok := ctx.Value(contextKey).(Driver)
if !ok {
return nil, &DriverNotFoundError{}
}
return tx, nil
}
func withDriver(ctx context.Context, tx Driver) context.Context {
return context.WithValue(ctx, contextKey, tx)
}
type DriverNotFoundError struct{}
func (e *DriverNotFoundError) Error() string {
return "tx driver not found in context"
}
func SetDriverOnContext(ctx context.Context, tx Driver) (context.Context, error) {
if _, err := GetDriverFromContext(ctx); err == nil {
return ctx, &DriverConflictError{}
}
return context.WithValue(ctx, contextKey, tx), nil
}
type DriverConflictError struct{}
func (e *DriverConflictError) Error() string {
return "tx driver already exists in context"
}