datatype

package
v28.3.0 Latest Latest
Warning

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

Go to latest
Published: Mar 20, 2024 License: Apache-2.0 Imports: 4 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// DataCoin coin data type definition.
	DataCoin = DataType{
		DataType:         func(string) string { return "sdk.Coin" },
		DefaultTestValue: "10token",
		ProtoType: func(_, name string, index int) string {
			return fmt.Sprintf("cosmos.base.v1beta1.Coin %s = %d [(gogoproto.nullable) = false]",
				name, index)
		},
		GenesisArgs: func(multiformatname.Name, int) string { return "" },
		CLIArgs: func(name multiformatname.Name, _, prefix string, argIndex int) string {
			return fmt.Sprintf(`%s%s, err := sdk.ParseCoinNormalized(args[%d])
					if err != nil {
						return err
					}`, prefix, name.UpperCamel, argIndex)
		},
		GoCLIImports: []GoImport{{Name: "github.com/cosmos/cosmos-sdk/types", Alias: "sdk"}},
		ProtoImports: []string{"gogoproto/gogo.proto", "cosmos/base/v1beta1/coin.proto"},
		NonIndex:     true,
		ToProtoField: func(_, name string, index int) *proto.NormalField {
			option := protoutil.NewOption("gogoproto.nullable", "false", protoutil.Custom())
			return protoutil.NewField(
				name, "cosmos.base.v1beta1.Coin", index, protoutil.WithFieldOptions(option),
			)
		},
	}

	// DataCoinSlice is a coin array data type definition.
	DataCoinSlice = DataType{
		DataType:         func(string) string { return "sdk.Coins" },
		DefaultTestValue: "10token,20stake",
		ProtoType: func(_, name string, index int) string {
			return fmt.Sprintf("repeated cosmos.base.v1beta1.Coin %s = %d [(gogoproto.nullable) = false]",
				name, index)
		},
		GenesisArgs: func(multiformatname.Name, int) string { return "" },
		CLIArgs: func(name multiformatname.Name, _, prefix string, argIndex int) string {
			return fmt.Sprintf(`%s%s, err := sdk.ParseCoinsNormalized(args[%d])
					if err != nil {
						return err
					}`, prefix, name.UpperCamel, argIndex)
		},
		GoCLIImports: []GoImport{{Name: "github.com/cosmos/cosmos-sdk/types", Alias: "sdk"}},
		ProtoImports: []string{"gogoproto/gogo.proto", "cosmos/base/v1beta1/coin.proto"},
		NonIndex:     true,
		ToProtoField: func(_, name string, index int) *proto.NormalField {
			option := protoutil.NewOption("gogoproto.nullable", "false", protoutil.Custom())
			return protoutil.NewField(
				name, "cosmos.base.v1beta1.Coin", index, protoutil.WithFieldOptions(option), protoutil.Repeated(),
			)
		},
	}
)
View Source
var (
	// DataInt is an int data type definition.
	DataInt = DataType{
		DataType:          func(string) string { return "int32" },
		DefaultTestValue:  "111",
		ValueLoop:         "int32(i)",
		ValueIndex:        "0",
		ValueInvalidIndex: "100000",
		ProtoType: func(_, name string, index int) string {
			return fmt.Sprintf("int32 %s = %d", name, index)
		},
		GenesisArgs: func(name multiformatname.Name, value int) string {
			return fmt.Sprintf("%s: %d,\n", name.UpperCamel, value)
		},
		CLIArgs: func(name multiformatname.Name, _, prefix string, argIndex int) string {
			return fmt.Sprintf(`%s%s, err := cast.ToInt32E(args[%d])
            		if err != nil {
                		return err
            		}`,
				prefix, name.UpperCamel, argIndex)
		},
		ToBytes: func(name string) string {
			return fmt.Sprintf(`%[1]vBytes := make([]byte, 4)
  					binary.BigEndian.PutUint32(%[1]vBytes, uint32(%[1]v))`, name)
		},
		ToString: func(name string) string {
			return fmt.Sprintf("strconv.Itoa(int(%s))", name)
		},
		ToProtoField: func(_, name string, index int) *proto.NormalField {
			return protoutil.NewField(name, "int32", index)
		},
		GoCLIImports: []GoImport{{Name: "github.com/spf13/cast"}},
	}

	// DataIntSlice is an int array data type definition.
	DataIntSlice = DataType{
		DataType:         func(string) string { return "[]int32" },
		DefaultTestValue: "1,2,3,4,5",
		ProtoType: func(_, name string, index int) string {
			return fmt.Sprintf("repeated int32 %s = %d", name, index)
		},
		GenesisArgs: func(name multiformatname.Name, value int) string {
			return fmt.Sprintf("%s: []int32{%d},\n", name.UpperCamel, value)
		},
		CLIArgs: func(name multiformatname.Name, _, prefix string, argIndex int) string {
			return fmt.Sprintf(`%[1]vCast%[2]v := strings.Split(args[%[3]v], listSeparator)
					%[1]v%[2]v := make([]int32, len(%[1]vCast%[2]v))
					for i, arg := range %[1]vCast%[2]v {
						value, err := cast.ToInt32E(arg)
						if err != nil {
							return err
						}
						%[1]v%[2]v[i] = value
					}`, prefix, name.UpperCamel, argIndex)
		},
		ToProtoField: func(_, name string, index int) *proto.NormalField {
			return protoutil.NewField(name, "int32", index, protoutil.Repeated())
		},
		GoCLIImports: []GoImport{{Name: "github.com/spf13/cast"}, {Name: "strings"}},
		NonIndex:     true,
	}
)
View Source
var (
	// DataString is a string data type definition.
	DataString = DataType{
		DataType:          func(string) string { return "string" },
		DefaultTestValue:  "xyz",
		ValueLoop:         "strconv.Itoa(i)",
		ValueIndex:        "strconv.Itoa(0)",
		ValueInvalidIndex: "strconv.Itoa(100000)",
		ProtoType: func(_, name string, index int) string {
			return fmt.Sprintf("string %s = %d", name, index)
		},
		GenesisArgs: func(name multiformatname.Name, value int) string {
			return fmt.Sprintf("%s: \"%d\",\n", name.UpperCamel, value)
		},
		CLIArgs: func(name multiformatname.Name, _, prefix string, argIndex int) string {
			return fmt.Sprintf("%s%s := args[%d]", prefix, name.UpperCamel, argIndex)
		},
		ToBytes: func(name string) string {
			return fmt.Sprintf("%[1]vBytes := []byte(%[1]v)", name)
		},
		ToString: func(name string) string {
			return name
		},
		ToProtoField: func(_, name string, index int) *proto.NormalField {
			return protoutil.NewField(name, "string", index)
		},
	}

	// DataStringSlice is a string array data type definition.
	DataStringSlice = DataType{
		DataType:         func(string) string { return "[]string" },
		DefaultTestValue: "abc,xyz",
		ProtoType: func(_, name string, index int) string {
			return fmt.Sprintf("repeated string %s = %d", name, index)
		},
		GenesisArgs: func(name multiformatname.Name, value int) string {
			return fmt.Sprintf("%s: []string{\"%d\"},\n", name.UpperCamel, value)
		},
		CLIArgs: func(name multiformatname.Name, _, prefix string, argIndex int) string {
			return fmt.Sprintf(`%[1]v%[2]v := strings.Split(args[%[3]v], listSeparator)`,
				prefix, name.UpperCamel, argIndex)
		},
		GoCLIImports: []GoImport{{Name: "strings"}},
		NonIndex:     true,
		ToProtoField: func(_, name string, index int) *proto.NormalField {
			return protoutil.NewField(name, "string", index, protoutil.Repeated())
		},
	}
)
View Source
var (
	// DataUint uint data type definition.
	DataUint = DataType{
		DataType:          func(string) string { return "uint64" },
		DefaultTestValue:  "111",
		ValueLoop:         "uint64(i)",
		ValueIndex:        "0",
		ValueInvalidIndex: "100000",
		ProtoType: func(_, name string, index int) string {
			return fmt.Sprintf("uint64 %s = %d", name, index)
		},
		GenesisArgs: func(name multiformatname.Name, value int) string {
			return fmt.Sprintf("%s: %d,\n", name.UpperCamel, value)
		},
		CLIArgs: func(name multiformatname.Name, _, prefix string, argIndex int) string {
			return fmt.Sprintf(`%s%s, err := cast.ToUint64E(args[%d])
            		if err != nil {
                		return err
            		}`,
				prefix, name.UpperCamel, argIndex)
		},
		ToBytes: func(name string) string {
			return fmt.Sprintf(`%[1]vBytes := make([]byte, 8)
  					binary.BigEndian.PutUint64(%[1]vBytes, %[1]v)`, name)
		},
		ToString: func(name string) string {
			return fmt.Sprintf("strconv.Itoa(int(%s))", name)
		},
		ToProtoField: func(_, name string, index int) *proto.NormalField {
			return protoutil.NewField(name, "uint64", index)
		},
		GoCLIImports: []GoImport{{Name: "github.com/spf13/cast"}},
	}

	// DataUintSlice uint array data type definition.
	DataUintSlice = DataType{
		DataType:         func(string) string { return "[]uint64" },
		DefaultTestValue: "1,2,3,4,5",
		ProtoType: func(_, name string, index int) string {
			return fmt.Sprintf("repeated uint64 %s = %d", name, index)
		},
		GenesisArgs: func(name multiformatname.Name, value int) string {
			return fmt.Sprintf("%s: []uint64{%d},\n", name.UpperCamel, value)
		},
		CLIArgs: func(name multiformatname.Name, _, prefix string, argIndex int) string {
			return fmt.Sprintf(`%[1]vCast%[2]v := strings.Split(args[%[3]v], listSeparator)
					%[1]v%[2]v := make([]uint64, len(%[1]vCast%[2]v))
					for i, arg := range %[1]vCast%[2]v {
						value, err := cast.ToUint64E(arg)
						if err != nil {
							return err
						}
						%[1]v%[2]v[i] = value
					}`,
				prefix, name.UpperCamel, argIndex)
		},
		ToProtoField: func(_, name string, index int) *proto.NormalField {
			return protoutil.NewField(name, "uint64", index, protoutil.Repeated())
		},
		GoCLIImports: []GoImport{{Name: "github.com/spf13/cast"}, {Name: "strings"}},
		NonIndex:     true,
	}
)
View Source
var DataBool = DataType{
	DataType:          func(string) string { return "bool" },
	DefaultTestValue:  "false",
	ValueLoop:         "false",
	ValueIndex:        "false",
	ValueInvalidIndex: "false",
	ProtoType: func(_, name string, index int) string {
		return fmt.Sprintf("bool %s = %d", name, index)
	},
	GenesisArgs: func(name multiformatname.Name, value int) string {
		return fmt.Sprintf("%s: %t,\n", name.UpperCamel, value%2 == 0)
	},
	CLIArgs: func(name multiformatname.Name, _, prefix string, argIndex int) string {
		return fmt.Sprintf(`%s%s, err := cast.ToBoolE(args[%d])
            		if err != nil {
                		return err
            		}`,
			prefix, name.UpperCamel, argIndex)
	},
	ToBytes: func(name string) string {
		return fmt.Sprintf(`%[1]vBytes := []byte{0}
					if %[1]v {
						%[1]vBytes = []byte{1}
					}`, name)
	},
	ToString: func(name string) string {
		return fmt.Sprintf("strconv.FormatBool(%s)", name)
	},
	ToProtoField: func(_, name string, index int) *proto.NormalField {
		return protoutil.NewField(name, "bool", index)
	},
	GoCLIImports: []GoImport{{Name: "github.com/spf13/cast"}},
}

DataBool bool data type definition.

View Source
var DataCustom = DataType{
	DataType:         func(datatype string) string { return fmt.Sprintf("*%s", datatype) },
	DefaultTestValue: "null",
	ProtoType: func(datatype, name string, index int) string {
		return fmt.Sprintf("%s %s = %d", datatype, name, index)
	},
	GenesisArgs: func(name multiformatname.Name, value int) string {
		return fmt.Sprintf("%s: new(types.%s),\n", name.UpperCamel, name.UpperCamel)
	},
	CLIArgs: func(name multiformatname.Name, datatype, prefix string, argIndex int) string {
		return fmt.Sprintf(`%[1]v%[2]v := new(types.%[3]v)
					err = json.Unmarshal([]byte(args[%[4]v]), %[1]v%[2]v)
    				if err != nil {
                		return err
            		}`, prefix, name.UpperCamel, datatype, argIndex)
	},
	ToProtoField: func(datatype, name string, index int) *proto.NormalField {
		return protoutil.NewField(name, datatype, index)
	},
	GoCLIImports: []GoImport{{Name: "encoding/json"}},
	NonIndex:     true,
}

DataCustom is a custom data type definition.

Functions

This section is empty.

Types

type DataType

type DataType struct {
	DataType          func(datatype string) string
	ProtoType         func(datatype, name string, index int) string
	GenesisArgs       func(name multiformatname.Name, value int) string
	ProtoImports      []string
	GoCLIImports      []GoImport
	DefaultTestValue  string
	ValueLoop         string
	ValueIndex        string
	ValueInvalidIndex string
	ToBytes           func(name string) string
	ToString          func(name string) string
	ToProtoField      func(datatype, name string, index int) *proto.NormalField
	CLIArgs           func(name multiformatname.Name, datatype, prefix string, argIndex int) string
	NonIndex          bool
}

DataType represents the data types for code replacement.

func IsSupportedType

func IsSupportedType(typename Name) (dt DataType, ok bool)

IsSupportedType type checks if the given typename is supported by ignite scaffolding. Returns corresponding Datatype if supported.

type GoImport

type GoImport struct {
	Name  string
	Alias string
}

GoImport represents the go import repo name with the alias.

type Name

type Name string

Name represents the Alias Name for the data type.

const (
	// Separator represents the type separator.
	Separator = ":"

	// String represents the string type name.
	String Name = "string"
	// StringSlice represents the string array type name.
	StringSlice Name = "array.string"
	// Bool represents the bool type name.
	Bool Name = "bool"
	// Int represents the int type name.
	Int Name = "int"
	// IntSlice represents the int array type name.
	IntSlice Name = "array.int"
	// Uint represents the uint type name.
	Uint Name = "uint"
	// UintSlice represents the uint array type name.
	UintSlice Name = "array.uint"
	// Coin represents the coin type name.
	Coin Name = "coin"
	// Coins represents the coin array type name.
	Coins Name = "array.coin"
	// Custom represents the custom type name.
	Custom Name = Name(TypeCustom)

	// StringSliceAlias represents the string array type name alias.
	StringSliceAlias Name = "strings"
	// IntSliceAlias represents the int array type name alias.
	IntSliceAlias Name = "ints"
	// UintSliceAlias represents the uint array type name alias.
	UintSliceAlias Name = "uints"
	// CoinSliceAlias represents the coin array type name alias.
	CoinSliceAlias Name = "coins"

	// TypeCustom represents the string type name id.
	TypeCustom = "customstarporttype"
)

Jump to

Keyboard shortcuts

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