 9bdcbe0447
			
		
	
	9bdcbe0447
	
	
	
		
			
			Major integrations and fixes: - Added BACKBEAT SDK integration for P2P operation timing - Implemented beat-aware status tracking for distributed operations - Added Docker secrets support for secure license management - Resolved KACHING license validation via HTTPS/TLS - Updated docker-compose configuration for clean stack deployment - Disabled rollback policies to prevent deployment failures - Added license credential storage (CHORUS-DEV-MULTI-001) Technical improvements: - BACKBEAT P2P operation tracking with phase management - Enhanced configuration system with file-based secrets - Improved error handling for license validation - Clean separation of KACHING and CHORUS deployment stacks 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
		
			
				
	
	
		
			121 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			121 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package gojay
 | |
| 
 | |
| import (
 | |
| 	"fmt"
 | |
| )
 | |
| 
 | |
| // Unsafe is the structure holding the unsafe version of the API.
 | |
| // The difference between unsafe api and regular api is that the regular API
 | |
| // copies the buffer passed to Unmarshal functions to a new internal buffer.
 | |
| // Making it safer because internally GoJay uses unsafe.Pointer to transform slice of bytes into a string.
 | |
| var Unsafe = decUnsafe{}
 | |
| 
 | |
| type decUnsafe struct{}
 | |
| 
 | |
| func (u decUnsafe) UnmarshalJSONArray(data []byte, v UnmarshalerJSONArray) error {
 | |
| 	dec := borrowDecoder(nil, 0)
 | |
| 	defer dec.Release()
 | |
| 	dec.data = data
 | |
| 	dec.length = len(data)
 | |
| 	_, err := dec.decodeArray(v)
 | |
| 	return err
 | |
| }
 | |
| 
 | |
| func (u decUnsafe) UnmarshalJSONObject(data []byte, v UnmarshalerJSONObject) error {
 | |
| 	dec := borrowDecoder(nil, 0)
 | |
| 	defer dec.Release()
 | |
| 	dec.data = data
 | |
| 	dec.length = len(data)
 | |
| 	_, err := dec.decodeObject(v)
 | |
| 	return err
 | |
| }
 | |
| 
 | |
| func (u decUnsafe) Unmarshal(data []byte, v interface{}) error {
 | |
| 	var err error
 | |
| 	var dec *Decoder
 | |
| 	switch vt := v.(type) {
 | |
| 	case *string:
 | |
| 		dec = borrowDecoder(nil, 0)
 | |
| 		dec.length = len(data)
 | |
| 		dec.data = data
 | |
| 		err = dec.decodeString(vt)
 | |
| 	case *int:
 | |
| 		dec = borrowDecoder(nil, 0)
 | |
| 		dec.length = len(data)
 | |
| 		dec.data = data
 | |
| 		err = dec.decodeInt(vt)
 | |
| 	case *int8:
 | |
| 		dec = borrowDecoder(nil, 0)
 | |
| 		dec.length = len(data)
 | |
| 		dec.data = data
 | |
| 		err = dec.decodeInt8(vt)
 | |
| 	case *int16:
 | |
| 		dec = borrowDecoder(nil, 0)
 | |
| 		dec.length = len(data)
 | |
| 		dec.data = data
 | |
| 		err = dec.decodeInt16(vt)
 | |
| 	case *int32:
 | |
| 		dec = borrowDecoder(nil, 0)
 | |
| 		dec.length = len(data)
 | |
| 		dec.data = data
 | |
| 		err = dec.decodeInt32(vt)
 | |
| 	case *int64:
 | |
| 		dec = borrowDecoder(nil, 0)
 | |
| 		dec.length = len(data)
 | |
| 		dec.data = data
 | |
| 		err = dec.decodeInt64(vt)
 | |
| 	case *uint8:
 | |
| 		dec = borrowDecoder(nil, 0)
 | |
| 		dec.length = len(data)
 | |
| 		dec.data = data
 | |
| 		err = dec.decodeUint8(vt)
 | |
| 	case *uint16:
 | |
| 		dec = borrowDecoder(nil, 0)
 | |
| 		dec.length = len(data)
 | |
| 		dec.data = data
 | |
| 		err = dec.decodeUint16(vt)
 | |
| 	case *uint32:
 | |
| 		dec = borrowDecoder(nil, 0)
 | |
| 		dec.length = len(data)
 | |
| 		dec.data = data
 | |
| 		err = dec.decodeUint32(vt)
 | |
| 	case *uint64:
 | |
| 		dec = borrowDecoder(nil, 0)
 | |
| 		dec.length = len(data)
 | |
| 		dec.data = data
 | |
| 		err = dec.decodeUint64(vt)
 | |
| 	case *float64:
 | |
| 		dec = borrowDecoder(nil, 0)
 | |
| 		dec.length = len(data)
 | |
| 		dec.data = data
 | |
| 		err = dec.decodeFloat64(vt)
 | |
| 	case *float32:
 | |
| 		dec = borrowDecoder(nil, 0)
 | |
| 		dec.length = len(data)
 | |
| 		dec.data = data
 | |
| 		err = dec.decodeFloat32(vt)
 | |
| 	case *bool:
 | |
| 		dec = borrowDecoder(nil, 0)
 | |
| 		dec.length = len(data)
 | |
| 		dec.data = data
 | |
| 		err = dec.decodeBool(vt)
 | |
| 	case UnmarshalerJSONObject:
 | |
| 		dec = borrowDecoder(nil, 0)
 | |
| 		dec.length = len(data)
 | |
| 		dec.data = data
 | |
| 		_, err = dec.decodeObject(vt)
 | |
| 	case UnmarshalerJSONArray:
 | |
| 		dec = borrowDecoder(nil, 0)
 | |
| 		dec.length = len(data)
 | |
| 		dec.data = data
 | |
| 		_, err = dec.decodeArray(vt)
 | |
| 	default:
 | |
| 		return InvalidUnmarshalError(fmt.Sprintf(invalidUnmarshalErrorMsg, vt))
 | |
| 	}
 | |
| 	defer dec.Release()
 | |
| 	if err != nil {
 | |
| 		return err
 | |
| 	}
 | |
| 	return dec.err
 | |
| }
 |