func NewName(str string) (Name, error) {
	if !VerifyNameString(str) {
		return Name{}, ErrNameStrNoValid
	}
	return parseName(str)
}
NewName create Name by string
package types
import (
	"bytes"
	"encoding/json"
	"fmt"
	yaml "gopkg.in/yaml.v2"
)
const (
	NameStrLenMax = 17
	NameBytesLen         = 16
	NameBytesTypeCodeLen = 1
	NameBytesVersionLen  = 1
	NameBytesLengthLen   = 1
	NameBytesHeaderLen   = NameBytesTypeCodeLen + NameBytesVersionLen + NameBytesLengthLen
	NameStrLengthIdx = 2
)
const (
	currentNameType    uint8 = 1
	currentNameVersion uint8 = 1
)
const (
	nameByteMask  byte = 0xFF
	nameByteMask2      = nameByteMask >> 2
	nameByteMask6      = nameByteMask >> 6
)
const (
	CharValueSeq       byte = 0   
	CharValueNil       byte = 63  
	CharValueDot       byte = 49  
	CharValueUnderline byte = 50  
)
type Name struct {
	Value []byte `json:"value,omitempty" yaml:"value"`
}