diff --git a/golang/examples/demo.go b/golang/examples/demo.go index 53dd3f0..b225dc4 100644 --- a/golang/examples/demo.go +++ b/golang/examples/demo.go @@ -190,13 +190,13 @@ func toSvgString(qr *qrcodegen.QrCode, border int32) (string, error) { sb.WriteString("\t\n") sb.WriteString("\t right { return left diff --git a/golang/qrcodegen.go b/golang/qrcodegen.go index 200379c..07c25a6 100644 --- a/golang/qrcodegen.go +++ b/golang/qrcodegen.go @@ -32,9 +32,10 @@ var ( ) // alias -type Version = version.Version -type QrCodeEcc = qrcodeecc.QrCodeEcc type Mask = mask.Mask +type QrCodeEcc = qrcodeecc.QrCodeEcc +type QrSegment = qrsegment.QrSegment +type Version = version.Version /*---- QrCode functionality ----*/ @@ -110,7 +111,7 @@ func EncodeText(text string, ecl QrCodeEcc) (*QrCode, error) { // data is too long to fit in any version at the given ECC level. func EncodeBinary(data []uint8, ecl QrCodeEcc) (*QrCode, error) { seg := qrsegment.MakeBytes(data) - segs := []qrsegment.QrSegment{seg} + segs := []QrSegment{seg} return EncodeSegments(segs, ecl) } @@ -128,7 +129,7 @@ func EncodeBinary(data []uint8, ecl QrCodeEcc) (*QrCode, error) { // // Returns a wrapped `QrCode` if successful, or `Err` if the // data is too long to fit in any version at the given ECC level. -func EncodeSegments(segs []qrsegment.QrSegment, ecl QrCodeEcc) (*QrCode, error) { +func EncodeSegments(segs []QrSegment, ecl QrCodeEcc) (*QrCode, error) { return EncodeSegmentsAdvanced(segs, ecl, version.Min, version.Max, nil, true) } @@ -147,7 +148,7 @@ func EncodeSegments(segs []qrsegment.QrSegment, ecl QrCodeEcc) (*QrCode, error) // Returns a wrapped `QrCode` if successful, or `Err` if the data is too // long to fit in any version in the given range at the given ECC level. func EncodeSegmentsAdvanced( - segs []qrsegment.QrSegment, + segs []QrSegment, ecl QrCodeEcc, minversion Version, maxversion Version, @@ -199,14 +200,14 @@ func EncodeSegmentsAdvanced( bb.AppendBits(uint32(seg.NumChars()), seg.Mode().NumCharCountBits(ver)) bb = append(bb, seg.Data()...) } - if len(bb) != int(datausedbits) { - panic("len(bb) != int(datausedbits)") + if uint(len(bb)) != datausedbits { + panic("uint(len(bb)) != datausedbits") } // Add terminator and pad up to a byte if applicable datacapacitybits := getNumDataCodewords(ver, ecl) * 8 - if len(bb) > int(datacapacitybits) { - panic("len(bb) > int(datacapacitybits)") + if uint(len(bb)) > datacapacitybits { + panic("uint(len(bb)) > datacapacitybits") } numzerobits := mathx.MinUint(4, datacapacitybits-uint(len(bb))) bb.AppendBits(0, uint8(numzerobits)) @@ -340,10 +341,10 @@ func (q *QrCode) moduleMut(x, y int32, mut bool) { // Reads this object's version field, and draws and marks all function modules. func (q *QrCode) drawFunctionPatterns() { // Draw horizontal and vertical timing patterns - size := int(q.size) - for i := 0; i < size; i++ { - q.setFunctionModule(6, int32(i), i%2 == 0) - q.setFunctionModule(int32(i), 6, i%2 == 0) + size := q.size + for i := int32(0); i < size; i++ { + q.setFunctionModule(6, i, i%2 == 0) + q.setFunctionModule(i, 6, i%2 == 0) } // Draw 3 finder patterns (all corners except bottom right; overwrites some timing modules) @@ -783,8 +784,8 @@ func reedSolomonComputeRemainder(data []uint8, divisor []uint8) []uint8 { result = append(result, 0) // TODO: refactor to match closer to the semantics of rust counterpart, zip() - iterLen := mathx.MinInt(len(result), len(divisor)) - for i := 0; i < iterLen; i++ { + iterLen := mathx.MinUint(uint(len(result)), uint(len(divisor))) + for i := uint(0); i < iterLen; i++ { // x := result[i] y := divisor[i]