Files
CHORUS/vendor/github.com/polydawn/refmt/obj/marshalSliceWildcard.go
anthonyrawlins 9bdcbe0447 Integrate BACKBEAT SDK and resolve KACHING license validation
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>
2025-09-06 07:56:26 +10:00

64 lines
1.5 KiB
Go

package obj
import (
"fmt"
"reflect"
. "github.com/polydawn/refmt/tok"
)
// Encodes a slice.
// This machine just wraps the array machine, checking to make sure the value isn't nil.
type marshalMachineSliceWildcard struct {
marshalMachineArrayWildcard
}
func (mach *marshalMachineSliceWildcard) Step(driver *Marshaller, slab *marshalSlab, tok *Token) (done bool, err error) {
if mach.index < 0 {
if mach.target_rv.IsNil() {
tok.Type = TNull
return true, nil
}
}
return mach.marshalMachineArrayWildcard.Step(driver, slab, tok)
}
type marshalMachineArrayWildcard struct {
target_rv reflect.Value
value_rt reflect.Type
valueMach MarshalMachine
index int
length int
}
func (mach *marshalMachineArrayWildcard) Reset(slab *marshalSlab, rv reflect.Value, rt reflect.Type) error {
mach.target_rv = rv
mach.value_rt = rt.Elem()
mach.valueMach = slab.requisitionMachine(mach.value_rt)
mach.index = -1
mach.length = mach.target_rv.Len()
return nil
}
func (mach *marshalMachineArrayWildcard) Step(driver *Marshaller, slab *marshalSlab, tok *Token) (done bool, err error) {
if mach.index < 0 {
tok.Type = TArrOpen
tok.Length = mach.target_rv.Len()
mach.index++
return false, nil
}
if mach.index == mach.length {
tok.Type = TArrClose
mach.index++
slab.release()
return true, nil
}
if mach.index > mach.length {
return true, fmt.Errorf("invalid state: value already consumed")
}
rv := mach.target_rv.Index(mach.index)
driver.Recurse(tok, rv, mach.value_rt, mach.valueMach)
mach.index++
return false, nil
}