本文整理汇总了Golang中github.com/go-swagger/go-swagger/swag.SplitByFormat函数的典型用法代码示例。如果您正苦于以下问题:Golang SplitByFormat函数的具体用法?Golang SplitByFormat怎么用?Golang SplitByFormat使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了SplitByFormat函数的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: TestSliceConversion
func TestSliceConversion(t *testing.T) {
actual := new(SomeOperationParams)
val := reflect.ValueOf(actual).Elem()
// prefsField := val.FieldByName("Prefs")
// cData := "yada,2,3"
// _, _, err := readFormattedSliceFieldValue("Prefs", prefsField, cData, "csv", nil)
// assert.Error(t, err)
sliced := []string{"some", "string", "values"}
seps := map[string]string{"ssv": " ", "tsv": "\t", "pipes": "|", "csv": ",", "": ","}
tagsField := val.FieldByName("Tags")
for k, sep := range seps {
binder := &untypedParamBinder{
Name: "Tags",
parameter: spec.QueryParam("tags").CollectionOf(stringItems, k),
}
actual.Tags = nil
cData := strings.Join(sliced, sep)
tags, _, err := binder.readFormattedSliceFieldValue(cData, tagsField)
assert.NoError(t, err)
assert.Equal(t, sliced, tags)
cData = strings.Join(sliced, " "+sep+" ")
tags, _, err = binder.readFormattedSliceFieldValue(cData, tagsField)
assert.NoError(t, err)
assert.Equal(t, sliced, tags)
tags, _, err = binder.readFormattedSliceFieldValue("", tagsField)
assert.NoError(t, err)
assert.Empty(t, tags)
}
assert.Nil(t, swag.SplitByFormat("yada", "multi"))
assert.Nil(t, swag.SplitByFormat("", ""))
categoriesField := val.FieldByName("Categories")
binder := &untypedParamBinder{
Name: "Categories",
parameter: spec.QueryParam("categories").CollectionOf(stringItems, "csv"),
}
cData := strings.Join(sliced, ",")
categories, custom, err := binder.readFormattedSliceFieldValue(cData, categoriesField)
assert.NoError(t, err)
assert.EqualValues(t, sliced, actual.Categories)
assert.True(t, custom)
assert.Empty(t, categories)
categories, custom, err = binder.readFormattedSliceFieldValue("", categoriesField)
assert.Error(t, err)
assert.True(t, custom)
assert.Empty(t, categories)
}
开发者ID:MStoykov,项目名称:go-swagger,代码行数:53,代码来源:string_conversion_test.go
示例2: bindTypes
func (o *FindLearningResourcesParams) bindTypes(rawData []string, hasKey bool, formats strfmt.Registry) error {
var qvTypes string
if len(rawData) > 0 {
qvTypes = rawData[len(rawData)-1]
}
raw := swag.SplitByFormat(qvTypes, "csv")
size := len(raw)
if size == 0 {
return nil
}
ic := raw
isz := size
var ir []string
iValidateElement := func(i int, typesI string) *errors.Validation {
return nil
}
for i := 0; i < isz; i++ {
if err := iValidateElement(i, ic[i]); err != nil {
return err
}
ir = append(ir, ic[i])
}
o.Types = ir
return nil
}
开发者ID:gophergala2016,项目名称:wwcdc_01,代码行数:34,代码来源:find_learning_resources_parameters.go
示例3: readFormattedSliceFieldValue
func (p *untypedParamBinder) readFormattedSliceFieldValue(data string, target reflect.Value) ([]string, bool, error) {
ok, err := p.tryUnmarshaler(target, p.parameter.Default, data)
if err != nil {
return nil, true, err
}
if ok {
return nil, true, nil
}
return swag.SplitByFormat(data, p.parameter.CollectionFormat), false, nil
}
开发者ID:jason-xxl,项目名称:go-swagger,代码行数:11,代码来源:parameter.go
示例4: BindRequest
// BindRequest both binds and validates a request, it assumes that complex things implement a Validatable(strfmt.Registry) error interface
// for simple values it will use straight method calls
func (o *FindPetsByStatusParams) BindRequest(r *http.Request, route *middleware.MatchedRoute) error {
var res []error
qs := r.URL.Query()
if err := o.bindStatus(swag.SplitByFormat(qs.Get("status"), "multi"), route.Formats); err != nil {
res = append(res, err)
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil
}
开发者ID:hartsock,项目名称:go-swagger,代码行数:15,代码来源:find_pets_by_status_parameters.go
示例5: bindStatus
func (o *FindPetsByStatusParams) bindStatus(rawData []string, hasKey bool, formats strfmt.Registry) error {
if !hasKey {
return errors.Required("status", "query")
}
var qvStatus string
if len(rawData) > 0 {
qvStatus = rawData[len(rawData)-1]
}
raw := swag.SplitByFormat(qvStatus, "csv")
size := len(raw)
if size == 0 {
return errors.Required("status", "query")
}
if size == 0 {
return nil
}
ic := raw
isz := size
var ir []string
iValidateElement := func(i int, statusI string) *errors.Validation {
if err := validate.Enum(fmt.Sprintf("%s.%v", "status", i), "query", o.Status[i], []interface{}{"available", "pending", "sold"}); err != nil {
return err
}
return nil
}
for i := 0; i < isz; i++ {
if err := iValidateElement(i, ic[i]); err != nil {
return err
}
ir = append(ir, ic[i])
}
o.Status = ir
return nil
}
开发者ID:jemkzheng,项目名称:go-swagger,代码行数:45,代码来源:find_pets_by_status_parameters.go
示例6: bindStatus
func (o *ListTasksParams) bindStatus(rawData []string, hasKey bool, formats strfmt.Registry) error {
var qvStatus string
if len(rawData) > 0 {
qvStatus = rawData[len(rawData)-1]
}
raw := swag.SplitByFormat(qvStatus, "pipes")
size := len(raw)
if size == 0 {
return nil
}
ic := raw
isz := size
var ir []string
iValidateElement := func(i int, statusI string) *errors.Validation {
if err := validate.Enum(fmt.Sprintf("%s.%v", "status", i), "query", o.Status[i], []interface{}{"open", "closed", "ignored", "rejected"}); err != nil {
return err
}
return nil
}
for i := 0; i < isz; i++ {
if err := iValidateElement(i, ic[i]); err != nil {
return err
}
ir = append(ir, ic[i])
}
o.Status = ir
if err := o.validateStatus(formats); err != nil {
return err
}
return nil
}
开发者ID:MStoykov,项目名称:go-swagger,代码行数:41,代码来源:list_tasks_parameters.go
示例7: bindTags
func (o *FindPetsByTagsParams) bindTags(rawData []string, hasKey bool, formats strfmt.Registry) error {
if !hasKey {
return errors.Required("tags", "query")
}
var qvTags string
if len(rawData) > 0 {
qvTags = rawData[len(rawData)-1]
}
raw := swag.SplitByFormat(qvTags, "csv")
size := len(raw)
if size == 0 {
return errors.Required("tags", "query")
}
if size == 0 {
return nil
}
ic := raw
isz := size
var ir []string
iValidateElement := func(i int, tagsI string) *errors.Validation {
return nil
}
for i := 0; i < isz; i++ {
if err := iValidateElement(i, ic[i]); err != nil {
return err
}
ir = append(ir, ic[i])
}
o.Tags = ir
return nil
}
开发者ID:MStoykov,项目名称:go-swagger,代码行数:41,代码来源:find_pets_by_tags_parameters.go
示例8: bindTags
func (o *ListTasksParams) bindTags(rawData []string, hasKey bool, formats strfmt.Registry) error {
var qvTags string
if len(rawData) > 0 {
qvTags = rawData[len(rawData)-1]
}
raw := swag.SplitByFormat(qvTags, "")
size := len(raw)
if size == 0 {
return nil
}
ic := raw
isz := size
var ir []string
iValidateElement := func(i int, tagsI string) *errors.Validation {
return nil
}
for i := 0; i < isz; i++ {
if err := iValidateElement(i, ic[i]); err != nil {
return err
}
ir = append(ir, ic[i])
}
o.Tags = ir
if err := o.validateTags(formats); err != nil {
return err
}
return nil
}
开发者ID:MStoykov,项目名称:go-swagger,代码行数:37,代码来源:list_tasks_parameters.go
示例9: ReadCollectionValue
// ReadCollectionValue reads a collection value from a string data source
func ReadCollectionValue(values Gettable, name, collectionFormat string) []string {
v := ReadSingleValue(values, name)
return swag.SplitByFormat(v, collectionFormat)
}
开发者ID:MStoykov,项目名称:go-swagger,代码行数:5,代码来源:request.go
注:本文中的github.com/go-swagger/go-swagger/swag.SplitByFormat函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论