package redis

import (
	"context"
	"time"
)

func shrinkDeadline(ctx context.Context, timeout time.Duration) time.Time {
	var timeoutTime = time.Now().Add(timeout)
	if ctx == nil {
		return timeoutTime
	}
	if deadline, ok := ctx.Deadline(); ok && timeoutTime.After(deadline) {
		return deadline
	}
	return timeoutTime
}