cache

package
v0.0.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 11, 2023 License: Apache-2.0 Imports: 14 Imported by: 0

Documentation

Index

Constants

View Source
const (
	Cache_Get_FullMethodName       = "/cache.Cache/Get"
	Cache_Set_FullMethodName       = "/cache.Cache/Set"
	Cache_Delete_FullMethodName    = "/cache.Cache/Delete"
	Cache_Increment_FullMethodName = "/cache.Cache/Increment"
	Cache_Decrement_FullMethodName = "/cache.Cache/Decrement"
	Cache_ListKeys_FullMethodName  = "/cache.Cache/ListKeys"
	Cache_HGet_FullMethodName      = "/cache.Cache/HGet"
	Cache_HSet_FullMethodName      = "/cache.Cache/HSet"
	Cache_HSetMap_FullMethodName   = "/cache.Cache/HSetMap"
	Cache_HGetAll_FullMethodName   = "/cache.Cache/HGetAll"
)

Variables

View Source
var Cache_ServiceDesc = grpc.ServiceDesc{
	ServiceName: "cache.Cache",
	HandlerType: (*CacheServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "Get",
			Handler:    _Cache_Get_Handler,
		},
		{
			MethodName: "Set",
			Handler:    _Cache_Set_Handler,
		},
		{
			MethodName: "Delete",
			Handler:    _Cache_Delete_Handler,
		},
		{
			MethodName: "Increment",
			Handler:    _Cache_Increment_Handler,
		},
		{
			MethodName: "Decrement",
			Handler:    _Cache_Decrement_Handler,
		},
		{
			MethodName: "ListKeys",
			Handler:    _Cache_ListKeys_Handler,
		},
		{
			MethodName: "HGet",
			Handler:    _Cache_HGet_Handler,
		},
		{
			MethodName: "HSet",
			Handler:    _Cache_HSet_Handler,
		},
		{
			MethodName: "HSetMap",
			Handler:    _Cache_HSetMap_Handler,
		},
		{
			MethodName: "HGetAll",
			Handler:    _Cache_HGetAll_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "cache/cache.proto",
}

Cache_ServiceDesc is the grpc.ServiceDesc for Cache service. It's only intended for direct use with grpc.RegisterService, and not to be introspected or modified (even as a copy)

View Source
var File_cache_cache_proto protoreflect.FileDescriptor

Functions

func NewCacheEndpoints

func NewCacheEndpoints() []*api.Endpoint

func RegisterCacheHandler

func RegisterCacheHandler(s server.Server, hdlr CacheHandler, opts ...server.HandlerOption) error

func RegisterCacheServer

func RegisterCacheServer(s grpc.ServiceRegistrar, srv CacheServer)

Types

type CacheClient

type CacheClient interface {
	Get(ctx context.Context, in *GetRequest, opts ...grpc.CallOption) (*GetResponse, error)
	Set(ctx context.Context, in *SetRequest, opts ...grpc.CallOption) (*SetResponse, error)
	Delete(ctx context.Context, in *DeleteRequest, opts ...grpc.CallOption) (*DeleteResponse, error)
	Increment(ctx context.Context, in *IncrementRequest, opts ...grpc.CallOption) (*IncrementResponse, error)
	Decrement(ctx context.Context, in *DecrementRequest, opts ...grpc.CallOption) (*DecrementResponse, error)
	ListKeys(ctx context.Context, in *ListKeysRequest, opts ...grpc.CallOption) (*ListKeysResponse, error)
	HGet(ctx context.Context, in *HGetRequest, opts ...grpc.CallOption) (*HGetResponse, error)
	HSet(ctx context.Context, in *HSetRequest, opts ...grpc.CallOption) (*HSetResponse, error)
	HSetMap(ctx context.Context, in *HSetMapRequest, opts ...grpc.CallOption) (*HSetMapResponse, error)
	HGetAll(ctx context.Context, in *HGetAllRequest, opts ...grpc.CallOption) (*HGetAllResponse, error)
}

CacheClient is the client API for Cache service.

For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.

func NewCacheClient

func NewCacheClient(cc grpc.ClientConnInterface) CacheClient

type CacheServer

CacheServer is the server API for Cache service. All implementations must embed UnimplementedCacheServer for forward compatibility

type DecrementRequest

type DecrementRequest struct {

	// The key to decrement
	Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
	// The amount to decrement the value by
	Value int64 `protobuf:"varint,2,opt,name=value,proto3" json:"value,omitempty"`
	// contains filtered or unexported fields
}

Decrement a value (if it's a number). If key not found it is equivalent to set.

func (*DecrementRequest) Descriptor deprecated

func (*DecrementRequest) Descriptor() ([]byte, []int)

Deprecated: Use DecrementRequest.ProtoReflect.Descriptor instead.

func (*DecrementRequest) GetKey

func (x *DecrementRequest) GetKey() string

func (*DecrementRequest) GetValue

func (x *DecrementRequest) GetValue() int64

func (*DecrementRequest) ProtoMessage

func (*DecrementRequest) ProtoMessage()

func (*DecrementRequest) ProtoReflect

func (x *DecrementRequest) ProtoReflect() protoreflect.Message

func (*DecrementRequest) Reset

func (x *DecrementRequest) Reset()

func (*DecrementRequest) String

func (x *DecrementRequest) String() string

type DecrementResponse

type DecrementResponse struct {

	// The key decremented
	Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
	// The new value
	Value int64 `protobuf:"varint,2,opt,name=value,proto3" json:"value,omitempty"`
	// contains filtered or unexported fields
}

func (*DecrementResponse) Descriptor deprecated

func (*DecrementResponse) Descriptor() ([]byte, []int)

Deprecated: Use DecrementResponse.ProtoReflect.Descriptor instead.

func (*DecrementResponse) GetKey

func (x *DecrementResponse) GetKey() string

func (*DecrementResponse) GetValue

func (x *DecrementResponse) GetValue() int64

func (*DecrementResponse) ProtoMessage

func (*DecrementResponse) ProtoMessage()

func (*DecrementResponse) ProtoReflect

func (x *DecrementResponse) ProtoReflect() protoreflect.Message

func (*DecrementResponse) Reset

func (x *DecrementResponse) Reset()

func (*DecrementResponse) String

func (x *DecrementResponse) String() string

type DeleteRequest

type DeleteRequest struct {

	// The key to delete
	Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
	// contains filtered or unexported fields
}

Delete a value from the cache. If key not found a success response is returned.

func (*DeleteRequest) Descriptor deprecated

func (*DeleteRequest) Descriptor() ([]byte, []int)

Deprecated: Use DeleteRequest.ProtoReflect.Descriptor instead.

func (*DeleteRequest) GetKey

func (x *DeleteRequest) GetKey() string

func (*DeleteRequest) ProtoMessage

func (*DeleteRequest) ProtoMessage()

func (*DeleteRequest) ProtoReflect

func (x *DeleteRequest) ProtoReflect() protoreflect.Message

func (*DeleteRequest) Reset

func (x *DeleteRequest) Reset()

func (*DeleteRequest) String

func (x *DeleteRequest) String() string

type DeleteResponse

type DeleteResponse struct {

	// Returns "ok" if successful
	Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"`
	// contains filtered or unexported fields
}

func (*DeleteResponse) Descriptor deprecated

func (*DeleteResponse) Descriptor() ([]byte, []int)

Deprecated: Use DeleteResponse.ProtoReflect.Descriptor instead.

func (*DeleteResponse) GetStatus

func (x *DeleteResponse) GetStatus() string

func (*DeleteResponse) ProtoMessage

func (*DeleteResponse) ProtoMessage()

func (*DeleteResponse) ProtoReflect

func (x *DeleteResponse) ProtoReflect() protoreflect.Message

func (*DeleteResponse) Reset

func (x *DeleteResponse) Reset()

func (*DeleteResponse) String

func (x *DeleteResponse) String() string

type GetRequest

type GetRequest struct {

	// The key to retrieve
	Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
	// contains filtered or unexported fields
}

Get an item from the cache by key. If key is not found, an empty response is returned.

func (*GetRequest) Descriptor deprecated

func (*GetRequest) Descriptor() ([]byte, []int)

Deprecated: Use GetRequest.ProtoReflect.Descriptor instead.

func (*GetRequest) GetKey

func (x *GetRequest) GetKey() string

func (*GetRequest) ProtoMessage

func (*GetRequest) ProtoMessage()

func (*GetRequest) ProtoReflect

func (x *GetRequest) ProtoReflect() protoreflect.Message

func (*GetRequest) Reset

func (x *GetRequest) Reset()

func (*GetRequest) String

func (x *GetRequest) String() string

type GetResponse

type GetResponse struct {

	// The key
	Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
	// The value
	Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
	// Time to live in seconds
	Ttl int64 `protobuf:"varint,3,opt,name=ttl,proto3" json:"ttl,omitempty"`
	// contains filtered or unexported fields
}

func (*GetResponse) Descriptor deprecated

func (*GetResponse) Descriptor() ([]byte, []int)

Deprecated: Use GetResponse.ProtoReflect.Descriptor instead.

func (*GetResponse) GetKey

func (x *GetResponse) GetKey() string

func (*GetResponse) GetTtl

func (x *GetResponse) GetTtl() int64

func (*GetResponse) GetValue

func (x *GetResponse) GetValue() string

func (*GetResponse) ProtoMessage

func (*GetResponse) ProtoMessage()

func (*GetResponse) ProtoReflect

func (x *GetResponse) ProtoReflect() protoreflect.Message

func (*GetResponse) Reset

func (x *GetResponse) Reset()

func (*GetResponse) String

func (x *GetResponse) String() string

type HGetAllRequest

type HGetAllRequest struct {
	Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
	// contains filtered or unexported fields
}

func (*HGetAllRequest) Descriptor deprecated

func (*HGetAllRequest) Descriptor() ([]byte, []int)

Deprecated: Use HGetAllRequest.ProtoReflect.Descriptor instead.

func (*HGetAllRequest) GetKey

func (x *HGetAllRequest) GetKey() string

func (*HGetAllRequest) ProtoMessage

func (*HGetAllRequest) ProtoMessage()

func (*HGetAllRequest) ProtoReflect

func (x *HGetAllRequest) ProtoReflect() protoreflect.Message

func (*HGetAllRequest) Reset

func (x *HGetAllRequest) Reset()

func (*HGetAllRequest) String

func (x *HGetAllRequest) String() string

type HGetAllResponse

type HGetAllResponse struct {
	Value map[string]string `` /* 151-byte string literal not displayed */
	// contains filtered or unexported fields
}

func (*HGetAllResponse) Descriptor deprecated

func (*HGetAllResponse) Descriptor() ([]byte, []int)

Deprecated: Use HGetAllResponse.ProtoReflect.Descriptor instead.

func (*HGetAllResponse) GetValue

func (x *HGetAllResponse) GetValue() map[string]string

func (*HGetAllResponse) ProtoMessage

func (*HGetAllResponse) ProtoMessage()

func (*HGetAllResponse) ProtoReflect

func (x *HGetAllResponse) ProtoReflect() protoreflect.Message

func (*HGetAllResponse) Reset

func (x *HGetAllResponse) Reset()

func (*HGetAllResponse) String

func (x *HGetAllResponse) String() string

type HGetRequest

type HGetRequest struct {
	Key   string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
	Field string `protobuf:"bytes,2,opt,name=field,proto3" json:"field,omitempty"`
	// contains filtered or unexported fields
}

Hash Key

func (*HGetRequest) Descriptor deprecated

func (*HGetRequest) Descriptor() ([]byte, []int)

Deprecated: Use HGetRequest.ProtoReflect.Descriptor instead.

func (*HGetRequest) GetField

func (x *HGetRequest) GetField() string

func (*HGetRequest) GetKey

func (x *HGetRequest) GetKey() string

func (*HGetRequest) ProtoMessage

func (*HGetRequest) ProtoMessage()

func (*HGetRequest) ProtoReflect

func (x *HGetRequest) ProtoReflect() protoreflect.Message

func (*HGetRequest) Reset

func (x *HGetRequest) Reset()

func (*HGetRequest) String

func (x *HGetRequest) String() string

type HGetResponse

type HGetResponse struct {
	Key   string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
	Field string `protobuf:"bytes,2,opt,name=field,proto3" json:"field,omitempty"`
	Value string `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"`
	// contains filtered or unexported fields
}

func (*HGetResponse) Descriptor deprecated

func (*HGetResponse) Descriptor() ([]byte, []int)

Deprecated: Use HGetResponse.ProtoReflect.Descriptor instead.

func (*HGetResponse) GetField

func (x *HGetResponse) GetField() string

func (*HGetResponse) GetKey

func (x *HGetResponse) GetKey() string

func (*HGetResponse) GetValue

func (x *HGetResponse) GetValue() string

func (*HGetResponse) ProtoMessage

func (*HGetResponse) ProtoMessage()

func (*HGetResponse) ProtoReflect

func (x *HGetResponse) ProtoReflect() protoreflect.Message

func (*HGetResponse) Reset

func (x *HGetResponse) Reset()

func (*HGetResponse) String

func (x *HGetResponse) String() string

type HSetMapRequest

type HSetMapRequest struct {
	Key   string            `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
	Value map[string]string `` /* 151-byte string literal not displayed */
	// contains filtered or unexported fields
}

func (*HSetMapRequest) Descriptor deprecated

func (*HSetMapRequest) Descriptor() ([]byte, []int)

Deprecated: Use HSetMapRequest.ProtoReflect.Descriptor instead.

func (*HSetMapRequest) GetKey

func (x *HSetMapRequest) GetKey() string

func (*HSetMapRequest) GetValue

func (x *HSetMapRequest) GetValue() map[string]string

func (*HSetMapRequest) ProtoMessage

func (*HSetMapRequest) ProtoMessage()

func (*HSetMapRequest) ProtoReflect

func (x *HSetMapRequest) ProtoReflect() protoreflect.Message

func (*HSetMapRequest) Reset

func (x *HSetMapRequest) Reset()

func (*HSetMapRequest) String

func (x *HSetMapRequest) String() string

type HSetMapResponse

type HSetMapResponse struct {
	Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"`
	// contains filtered or unexported fields
}

func (*HSetMapResponse) Descriptor deprecated

func (*HSetMapResponse) Descriptor() ([]byte, []int)

Deprecated: Use HSetMapResponse.ProtoReflect.Descriptor instead.

func (*HSetMapResponse) GetStatus

func (x *HSetMapResponse) GetStatus() string

func (*HSetMapResponse) ProtoMessage

func (*HSetMapResponse) ProtoMessage()

func (*HSetMapResponse) ProtoReflect

func (x *HSetMapResponse) ProtoReflect() protoreflect.Message

func (*HSetMapResponse) Reset

func (x *HSetMapResponse) Reset()

func (*HSetMapResponse) String

func (x *HSetMapResponse) String() string

type HSetRequest

type HSetRequest struct {
	Key   string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
	Field string `protobuf:"bytes,2,opt,name=field,proto3" json:"field,omitempty"`
	Value string `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"`
	// contains filtered or unexported fields
}

func (*HSetRequest) Descriptor deprecated

func (*HSetRequest) Descriptor() ([]byte, []int)

Deprecated: Use HSetRequest.ProtoReflect.Descriptor instead.

func (*HSetRequest) GetField

func (x *HSetRequest) GetField() string

func (*HSetRequest) GetKey

func (x *HSetRequest) GetKey() string

func (*HSetRequest) GetValue

func (x *HSetRequest) GetValue() string

func (*HSetRequest) ProtoMessage

func (*HSetRequest) ProtoMessage()

func (*HSetRequest) ProtoReflect

func (x *HSetRequest) ProtoReflect() protoreflect.Message

func (*HSetRequest) Reset

func (x *HSetRequest) Reset()

func (*HSetRequest) String

func (x *HSetRequest) String() string

type HSetResponse

type HSetResponse struct {
	Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"`
	// contains filtered or unexported fields
}

func (*HSetResponse) Descriptor deprecated

func (*HSetResponse) Descriptor() ([]byte, []int)

Deprecated: Use HSetResponse.ProtoReflect.Descriptor instead.

func (*HSetResponse) GetStatus

func (x *HSetResponse) GetStatus() string

func (*HSetResponse) ProtoMessage

func (*HSetResponse) ProtoMessage()

func (*HSetResponse) ProtoReflect

func (x *HSetResponse) ProtoReflect() protoreflect.Message

func (*HSetResponse) Reset

func (x *HSetResponse) Reset()

func (*HSetResponse) String

func (x *HSetResponse) String() string

type IncrementRequest

type IncrementRequest struct {

	// The key to increment
	Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
	// The amount to increment the value by
	Value int64 `protobuf:"varint,2,opt,name=value,proto3" json:"value,omitempty"`
	// contains filtered or unexported fields
}

Increment a value (if it's a number). If key not found it is equivalent to set.

func (*IncrementRequest) Descriptor deprecated

func (*IncrementRequest) Descriptor() ([]byte, []int)

Deprecated: Use IncrementRequest.ProtoReflect.Descriptor instead.

func (*IncrementRequest) GetKey

func (x *IncrementRequest) GetKey() string

func (*IncrementRequest) GetValue

func (x *IncrementRequest) GetValue() int64

func (*IncrementRequest) ProtoMessage

func (*IncrementRequest) ProtoMessage()

func (*IncrementRequest) ProtoReflect

func (x *IncrementRequest) ProtoReflect() protoreflect.Message

func (*IncrementRequest) Reset

func (x *IncrementRequest) Reset()

func (*IncrementRequest) String

func (x *IncrementRequest) String() string

type IncrementResponse

type IncrementResponse struct {

	// The key incremented
	Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
	// The new value
	Value int64 `protobuf:"varint,2,opt,name=value,proto3" json:"value,omitempty"`
	// contains filtered or unexported fields
}

func (*IncrementResponse) Descriptor deprecated

func (*IncrementResponse) Descriptor() ([]byte, []int)

Deprecated: Use IncrementResponse.ProtoReflect.Descriptor instead.

func (*IncrementResponse) GetKey

func (x *IncrementResponse) GetKey() string

func (*IncrementResponse) GetValue

func (x *IncrementResponse) GetValue() int64

func (*IncrementResponse) ProtoMessage

func (*IncrementResponse) ProtoMessage()

func (*IncrementResponse) ProtoReflect

func (x *IncrementResponse) ProtoReflect() protoreflect.Message

func (*IncrementResponse) Reset

func (x *IncrementResponse) Reset()

func (*IncrementResponse) String

func (x *IncrementResponse) String() string

type ListKeysRequest

type ListKeysRequest struct {
	// contains filtered or unexported fields
}

List all the available keys

func (*ListKeysRequest) Descriptor deprecated

func (*ListKeysRequest) Descriptor() ([]byte, []int)

Deprecated: Use ListKeysRequest.ProtoReflect.Descriptor instead.

func (*ListKeysRequest) ProtoMessage

func (*ListKeysRequest) ProtoMessage()

func (*ListKeysRequest) ProtoReflect

func (x *ListKeysRequest) ProtoReflect() protoreflect.Message

func (*ListKeysRequest) Reset

func (x *ListKeysRequest) Reset()

func (*ListKeysRequest) String

func (x *ListKeysRequest) String() string

type ListKeysResponse

type ListKeysResponse struct {
	Keys []string `protobuf:"bytes,1,rep,name=keys,proto3" json:"keys,omitempty"`
	// contains filtered or unexported fields
}

func (*ListKeysResponse) Descriptor deprecated

func (*ListKeysResponse) Descriptor() ([]byte, []int)

Deprecated: Use ListKeysResponse.ProtoReflect.Descriptor instead.

func (*ListKeysResponse) GetKeys

func (x *ListKeysResponse) GetKeys() []string

func (*ListKeysResponse) ProtoMessage

func (*ListKeysResponse) ProtoMessage()

func (*ListKeysResponse) ProtoReflect

func (x *ListKeysResponse) ProtoReflect() protoreflect.Message

func (*ListKeysResponse) Reset

func (x *ListKeysResponse) Reset()

func (*ListKeysResponse) String

func (x *ListKeysResponse) String() string

type SetRequest

type SetRequest struct {

	// The key to update
	Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
	// The value to set
	Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
	// Time to live in seconds
	Ttl int64 `protobuf:"varint,3,opt,name=ttl,proto3" json:"ttl,omitempty"`
	// contains filtered or unexported fields
}

Set an item in the cache. Overwrites any existing value already set.

func (*SetRequest) Descriptor deprecated

func (*SetRequest) Descriptor() ([]byte, []int)

Deprecated: Use SetRequest.ProtoReflect.Descriptor instead.

func (*SetRequest) GetKey

func (x *SetRequest) GetKey() string

func (*SetRequest) GetTtl

func (x *SetRequest) GetTtl() int64

func (*SetRequest) GetValue

func (x *SetRequest) GetValue() string

func (*SetRequest) ProtoMessage

func (*SetRequest) ProtoMessage()

func (*SetRequest) ProtoReflect

func (x *SetRequest) ProtoReflect() protoreflect.Message

func (*SetRequest) Reset

func (x *SetRequest) Reset()

func (*SetRequest) String

func (x *SetRequest) String() string

type SetResponse

type SetResponse struct {

	// Returns "ok" if successful
	Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"`
	// contains filtered or unexported fields
}

func (*SetResponse) Descriptor deprecated

func (*SetResponse) Descriptor() ([]byte, []int)

Deprecated: Use SetResponse.ProtoReflect.Descriptor instead.

func (*SetResponse) GetStatus

func (x *SetResponse) GetStatus() string

func (*SetResponse) ProtoMessage

func (*SetResponse) ProtoMessage()

func (*SetResponse) ProtoReflect

func (x *SetResponse) ProtoReflect() protoreflect.Message

func (*SetResponse) Reset

func (x *SetResponse) Reset()

func (*SetResponse) String

func (x *SetResponse) String() string

type UnimplementedCacheServer

type UnimplementedCacheServer struct {
}

UnimplementedCacheServer must be embedded to have forward compatible implementations.

func (UnimplementedCacheServer) Decrement

func (UnimplementedCacheServer) Delete

func (UnimplementedCacheServer) Get

func (UnimplementedCacheServer) HGet

func (UnimplementedCacheServer) HGetAll

func (UnimplementedCacheServer) HSet

func (UnimplementedCacheServer) HSetMap

func (UnimplementedCacheServer) Increment

func (UnimplementedCacheServer) ListKeys

func (UnimplementedCacheServer) Set

type UnsafeCacheServer

type UnsafeCacheServer interface {
	// contains filtered or unexported methods
}

UnsafeCacheServer may be embedded to opt out of forward compatibility for this service. Use of this interface is not recommended, as added methods to CacheServer will result in compilation errors.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL