98 lines
2.4 KiB
Go
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
|
|
}
|