func (kv *KVPair) AttributeValue() *dynamodb.AttributeValue {
	return kv.value
}
AttributeValue return the current dynamodb attribute value, may be nil
package dynalock
import (
	"context"
	"encoding/base64"
	"strconv"
	"strings"
	"time"
	"github.com/aws/aws-sdk-go-v2/aws"
	"github.com/aws/aws-sdk-go-v2/aws/awserr"
	"github.com/aws/aws-sdk-go-v2/service/dynamodb"
	"github.com/aws/aws-sdk-go-v2/service/dynamodb/dynamodbattribute"
	"github.com/aws/aws-sdk-go-v2/service/dynamodb/dynamodbiface"
)
type Dynalock struct {
	dynamoSvc dynamodbiface.ClientAPI
	tableName string
	partition string
}
type KVPair struct {
	Partition string `dynamodbav:"id"`
	Key       string `dynamodbav:"name"`
	Version   int64  `dynamodbav:"version"`
	Expires   int64  `dynamodbav:"expires"`
	value *dynamodb.AttributeValue
}
func (kv *KVPair) BytesValue() []byte {
	if kv.value.S == nil {
		return nil
	}
	buf, err := base64.StdEncoding.DecodeString(aws.StringValue(kv.value.S))
	if err != nil {
		return nil
	}
	return buf
}