Skip to content
Snippets Groups Projects
Commit 81a60105 authored by Wolfgang Welz's avatar Wolfgang Welz
Browse files

fix: use hive.go bitmask

parent c7c5501f
No related branches found
No related tags found
No related merge requests found
package bitutils
type BitMask byte
func (bitmask BitMask) SetFlag(pos uint) BitMask {
return bitmask | (1 << pos)
}
func (bitmask BitMask) ClearFlag(pos uint) BitMask {
return bitmask & ^(1 << pos)
}
func (bitmask BitMask) HasFlag(pos uint) bool {
return (bitmask&(1<<pos) > 0)
}
package bitutils
import (
"testing"
)
func TestBitmask(t *testing.T) {
var b BitMask
if b.HasFlag(0) {
t.Error("flag at pos 0 should not be set")
}
if b.HasFlag(1) {
t.Error("flag at pos 1 should not be set")
}
b = b.SetFlag(0)
if !b.HasFlag(0) {
t.Error("flag at pos 0 should be set")
}
b = b.SetFlag(1)
if !b.HasFlag(1) {
t.Error("flag at pos 1 should be set")
}
b = b.ClearFlag(0)
if b.HasFlag(0) {
t.Error("flag at pos 0 should not be set")
}
b = b.ClearFlag(1)
if b.HasFlag(1) {
t.Error("flag at pos 1 should not be set")
}
}
...@@ -6,9 +6,9 @@ import ( ...@@ -6,9 +6,9 @@ import (
"sync" "sync"
"unsafe" "unsafe"
"github.com/iotaledger/goshimmer/packages/bitutils"
"github.com/iotaledger/goshimmer/packages/errors" "github.com/iotaledger/goshimmer/packages/errors"
"github.com/iotaledger/goshimmer/packages/typeutils" "github.com/iotaledger/goshimmer/packages/typeutils"
"github.com/iotaledger/hive.go/bitmask"
"github.com/iotaledger/iota.go/trinary" "github.com/iotaledger/iota.go/trinary"
) )
...@@ -116,7 +116,7 @@ func (bundle *Bundle) Marshal() (result []byte) { ...@@ -116,7 +116,7 @@ func (bundle *Bundle) Marshal() (result []byte) {
copy(result[MARSHALED_HASH_START:MARSHALED_HASH_END], typeutils.StringToBytes(bundle.hash)) copy(result[MARSHALED_HASH_START:MARSHALED_HASH_END], typeutils.StringToBytes(bundle.hash))
copy(result[MARSHALED_BUNDLE_ESSENCE_HASH_START:MARSHALED_BUNDLE_ESSENCE_HASH_END], typeutils.StringToBytes(bundle.bundleEssenceHash)) copy(result[MARSHALED_BUNDLE_ESSENCE_HASH_START:MARSHALED_BUNDLE_ESSENCE_HASH_END], typeutils.StringToBytes(bundle.bundleEssenceHash))
var flags bitutils.BitMask var flags bitmask.BitMask
if bundle.isValueBundle { if bundle.isValueBundle {
flags = flags.SetFlag(0) flags = flags.SetFlag(0)
} }
...@@ -161,7 +161,7 @@ func (bundle *Bundle) Unmarshal(data []byte) (err errors.IdentifiableError) { ...@@ -161,7 +161,7 @@ func (bundle *Bundle) Unmarshal(data []byte) (err errors.IdentifiableError) {
bundle.hash = trinary.Trytes(typeutils.BytesToString(data[MARSHALED_HASH_START:MARSHALED_HASH_END])) bundle.hash = trinary.Trytes(typeutils.BytesToString(data[MARSHALED_HASH_START:MARSHALED_HASH_END]))
bundle.bundleEssenceHash = trinary.Trytes(typeutils.BytesToString(data[MARSHALED_BUNDLE_ESSENCE_HASH_START:MARSHALED_BUNDLE_ESSENCE_HASH_END])) bundle.bundleEssenceHash = trinary.Trytes(typeutils.BytesToString(data[MARSHALED_BUNDLE_ESSENCE_HASH_START:MARSHALED_BUNDLE_ESSENCE_HASH_END]))
flags := bitutils.BitMask(data[MARSHALED_FLAGS_START]) flags := bitmask.BitMask(data[MARSHALED_FLAGS_START])
if flags.HasFlag(0) { if flags.HasFlag(0) {
bundle.isValueBundle = true bundle.isValueBundle = true
} }
......
...@@ -4,9 +4,9 @@ import ( ...@@ -4,9 +4,9 @@ import (
"sync" "sync"
"time" "time"
"github.com/iotaledger/goshimmer/packages/bitutils"
"github.com/iotaledger/goshimmer/packages/errors" "github.com/iotaledger/goshimmer/packages/errors"
"github.com/iotaledger/goshimmer/packages/typeutils" "github.com/iotaledger/goshimmer/packages/typeutils"
"github.com/iotaledger/hive.go/bitmask"
"github.com/iotaledger/iota.go/trinary" "github.com/iotaledger/iota.go/trinary"
) )
...@@ -226,7 +226,7 @@ func (metadata *TransactionMetadata) Marshal() ([]byte, errors.IdentifiableError ...@@ -226,7 +226,7 @@ func (metadata *TransactionMetadata) Marshal() ([]byte, errors.IdentifiableError
} }
copy(marshaledMetadata[MARSHALED_RECEIVED_TIME_START:MARSHALED_RECEIVED_TIME_END], marshaledReceivedTime) copy(marshaledMetadata[MARSHALED_RECEIVED_TIME_START:MARSHALED_RECEIVED_TIME_END], marshaledReceivedTime)
var booleanFlags bitutils.BitMask var booleanFlags bitmask.BitMask
if metadata.solid { if metadata.solid {
booleanFlags = booleanFlags.SetFlag(0) booleanFlags = booleanFlags.SetFlag(0)
} }
...@@ -259,7 +259,7 @@ func (metadata *TransactionMetadata) Unmarshal(data []byte) errors.IdentifiableE ...@@ -259,7 +259,7 @@ func (metadata *TransactionMetadata) Unmarshal(data []byte) errors.IdentifiableE
return ErrUnmarshalFailed.Derive(err, "could not unmarshal the received time") return ErrUnmarshalFailed.Derive(err, "could not unmarshal the received time")
} }
booleanFlags := bitutils.BitMask(data[MARSHALED_FLAGS_START]) booleanFlags := bitmask.BitMask(data[MARSHALED_FLAGS_START])
if booleanFlags.HasFlag(0) { if booleanFlags.HasFlag(0) {
metadata.solid = true metadata.solid = true
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment