gtsocial-umbx

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

errors.go (1786B)


      1 /*
      2  * Copyright 2021 ByteDance Inc.
      3  *
      4  * Licensed under the Apache License, Version 2.0 (the "License");
      5  * you may not use this file except in compliance with the License.
      6  * You may obtain a copy of the License at
      7  *
      8  *     http://www.apache.org/licenses/LICENSE-2.0
      9  *
     10  * Unless required by applicable law or agreed to in writing, software
     11  * distributed under the License is distributed on an "AS IS" BASIS,
     12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     13  * See the License for the specific language governing permissions and
     14  * limitations under the License.
     15  */
     16 
     17 package encoder
     18 
     19 import (
     20     `encoding/json`
     21     `fmt`
     22     `reflect`
     23     `strconv`
     24     `unsafe`
     25 
     26     `github.com/bytedance/sonic/internal/rt`
     27 )
     28 
     29 var _ERR_too_deep = &json.UnsupportedValueError {
     30     Str   : "Value nesting too deep",
     31     Value : reflect.ValueOf("..."),
     32 }
     33 
     34 var _ERR_nan_or_infinite = &json.UnsupportedValueError {
     35     Str   : "NaN or ±Infinite",
     36     Value : reflect.ValueOf("NaN or ±Infinite"),
     37 }
     38 
     39 func error_type(vtype reflect.Type) error {
     40     return &json.UnsupportedTypeError{Type: vtype}
     41 }
     42 
     43 func error_number(number json.Number) error {
     44     return &json.UnsupportedValueError {
     45         Str   : "invalid number literal: " + strconv.Quote(string(number)),
     46         Value : reflect.ValueOf(number),
     47     }
     48 }
     49 
     50 func error_marshaler(ret []byte, pos int) error {
     51     return fmt.Errorf("invalid Marshaler output json syntax at %d: %q", pos, ret)
     52 }
     53 
     54 const (
     55     panicNilPointerOfNonEmptyString int = 1 + iota
     56 )
     57 
     58 func goPanic(code int, val unsafe.Pointer) {
     59     switch(code){
     60     case panicNilPointerOfNonEmptyString:
     61         panic(fmt.Sprintf("val: %#v has nil pointer while its length is not zero!", (*rt.GoString)(val)))
     62     default:
     63         panic("encoder error!")
     64     }
     65 }