fckeuspy-go/vendor/github.com/makiuchi-d/gozxing/result.go
2025-09-28 21:03:39 +02:00

98 lines
2.4 KiB
Go

package gozxing
import (
"time"
)
type Result struct {
text string
rawBytes []byte
numBits int
resultPoints []ResultPoint
format BarcodeFormat
resultMetadata map[ResultMetadataType]interface{}
timestamp int64
}
func NewResult(text string, rawBytes []byte, resultPoints []ResultPoint, format BarcodeFormat) *Result {
return NewResultWithTimestamp(
text, rawBytes, resultPoints, format, time.Now().UnixNano()/int64(time.Millisecond))
}
func NewResultWithTimestamp(text string, rawBytes []byte, resultPoints []ResultPoint, format BarcodeFormat, timestamp int64) *Result {
return NewResultWithNumBits(
text, rawBytes, 8*len(rawBytes), resultPoints, format, timestamp)
}
func NewResultWithNumBits(text string, rawBytes []byte, numBits int, resultPoints []ResultPoint, format BarcodeFormat, timestamp int64) *Result {
return &Result{
text: text,
rawBytes: rawBytes,
numBits: numBits,
resultPoints: resultPoints,
format: format,
resultMetadata: nil,
timestamp: timestamp,
}
}
func (this *Result) GetText() string {
return this.text
}
func (this *Result) GetRawBytes() []byte {
return this.rawBytes
}
func (this *Result) GetNumBits() int {
return this.numBits
}
func (this *Result) GetResultPoints() []ResultPoint {
return this.resultPoints
}
func (this *Result) GetBarcodeFormat() BarcodeFormat {
return this.format
}
func (this *Result) GetResultMetadata() map[ResultMetadataType]interface{} {
return this.resultMetadata
}
func (this *Result) PutMetadata(mdtype ResultMetadataType, value interface{}) {
if this.resultMetadata == nil {
this.resultMetadata = make(map[ResultMetadataType]interface{}, 1)
}
this.resultMetadata[mdtype] = value
}
func (this *Result) PutAllMetadata(metadata map[ResultMetadataType]interface{}) {
if len(metadata) > 0 {
if this.resultMetadata == nil {
this.resultMetadata = metadata
} else {
for k, v := range metadata {
this.resultMetadata[k] = v
}
}
}
}
func (this *Result) AddResultPoints(newPoints []ResultPoint) {
oldPoints := this.resultPoints
if len(oldPoints) == 0 {
this.resultPoints = newPoints
} else if len(newPoints) > 0 {
this.resultPoints = append(this.resultPoints, newPoints...)
}
}
func (this *Result) GetTimestamp() int64 {
return this.timestamp
}
func (this *Result) String() string {
return this.text
}