stubs_latest.go raw

   1  //go:build go1.24
   2  // +build go1.24
   3  
   4  /*
   5   * Copyright 2021 ByteDance Inc.
   6   *
   7   * Licensed under the Apache License, Version 2.0 (the "License");
   8   * you may not use this file except in compliance with the License.
   9   * You may obtain a copy of the License at
  10   *
  11   *     http://www.apache.org/licenses/LICENSE-2.0
  12   *
  13   * Unless required by applicable law or agreed to in writing, software
  14   * distributed under the License is distributed on an "AS IS" BASIS,
  15   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  16   * See the License for the specific language governing permissions and
  17   * limitations under the License.
  18   */
  19  
  20  package resolver
  21  
  22  import (
  23      _ `encoding/json`
  24      `reflect`
  25      _ `unsafe`
  26  )
  27  
  28  type StdField struct {
  29      name        string
  30      nameBytes   []byte
  31      nameNonEsc  string
  32      nameEscHTML string
  33      tag         bool
  34      index       []int
  35      typ         reflect.Type
  36      omitEmpty   bool
  37      omitZero    bool
  38      isZero      func(reflect.Value) bool
  39      quoted      bool
  40      encoder     func()
  41  }
  42  
  43  type StdStructFields struct {
  44      list      []StdField
  45      nameIndex map[string]*StdField
  46      byFoldedName map[string]*StdField
  47  }
  48  
  49  //go:noescape
  50  //go:linkname typeFields encoding/json.typeFields
  51  func typeFields(_ reflect.Type) StdStructFields
  52  
  53  func handleOmitZero(fv StdField, fm *FieldMeta) {
  54      if fv.omitZero {
  55          fm.Opts |= F_omitzero
  56          fm.IsZero = fv.isZero
  57      }
  58  }
  59  
  60