gotosocial/vendor/codeberg.org/gruf/go-bitutil/flag.go

3085 lines
67 KiB
Go
Raw Permalink Normal View History

package bitutil
import (
[chore] consolidate caching libraries (#704) * add miekg/dns dependency * set/validate accountDomain * move finger to dereferencer * totally break GetRemoteAccount * start reworking finger func a bit * start reworking getRemoteAccount a bit * move mention parts to namestring * rework webfingerget * use util function to extract webfinger parts * use accountDomain * rework finger again, final form * just a real nasty commit, the worst * remove refresh from account * use new ASRepToAccount signature * fix incorrect debug call * fix for new getRemoteAccount * rework GetRemoteAccount * start updating tests to remove repetition * break a lot of tests Move shared test logic into the testrig, rather than having it scattered all over the place. This allows us to just mock the transport controller once, and have all tests use it (unless they need not to for some other reason). * fix up tests to use main mock httpclient * webfinger only if necessary * cheeky linting with the lads * update mentionName regex recognize instance accounts * don't finger instance accounts * test webfinger part extraction * increase default worker count to 4 per cpu * don't repeat regex parsing * final search for discovered accountDomain * be more permissive in namestring lookup * add more extraction tests * simplify GetParseMentionFunc * skip long search if local account * fix broken test * consolidate to all use same caching libraries Signed-off-by: kim <grufwub@gmail.com> * perform more caching in the database layer Signed-off-by: kim <grufwub@gmail.com> * remove ASNote cache Signed-off-by: kim <grufwub@gmail.com> * update cache library, improve db tracing hooks Signed-off-by: kim <grufwub@gmail.com> * return ErrNoEntries if no account status IDs found, small formatting changes Signed-off-by: kim <grufwub@gmail.com> * fix tests, thanks tobi! Signed-off-by: kim <grufwub@gmail.com> Co-authored-by: tsmethurst <tobi.smethurst@protonmail.com>
2022-07-10 16:18:21 +01:00
"codeberg.org/gruf/go-byteutil"
)
// Flags8 is a type-casted unsigned integer with helper
// methods for easily managing up to 8 bit flags.
type Flags8 uint8
// Get will fetch the flag bit value at index 'bit'.
func (f Flags8) Get(bit uint8) bool {
mask := Flags8(1) << bit
return (f&mask != 0)
}
// Set will set the flag bit value at index 'bit'.
func (f Flags8) Set(bit uint8) Flags8 {
mask := Flags8(1) << bit
return f | mask
}
// Unset will unset the flag bit value at index 'bit'.
func (f Flags8) Unset(bit uint8) Flags8 {
mask := Flags8(1) << bit
return f & ^mask
}
// Get0 will fetch the flag bit value at index 0.
func (f Flags8) Get0() bool {
const mask = Flags8(1) << 0
return (f&mask != 0)
}
// Set0 will set the flag bit value at index 0.
func (f Flags8) Set0() Flags8 {
const mask = Flags8(1) << 0
return f | mask
}
// Unset0 will unset the flag bit value at index 0.
func (f Flags8) Unset0() Flags8 {
const mask = Flags8(1) << 0
return f & ^mask
}
// Get1 will fetch the flag bit value at index 1.
func (f Flags8) Get1() bool {
const mask = Flags8(1) << 1
return (f&mask != 0)
}
// Set1 will set the flag bit value at index 1.
func (f Flags8) Set1() Flags8 {
const mask = Flags8(1) << 1
return f | mask
}
// Unset1 will unset the flag bit value at index 1.
func (f Flags8) Unset1() Flags8 {
const mask = Flags8(1) << 1
return f & ^mask
}
// Get2 will fetch the flag bit value at index 2.
func (f Flags8) Get2() bool {
const mask = Flags8(1) << 2
return (f&mask != 0)
}
// Set2 will set the flag bit value at index 2.
func (f Flags8) Set2() Flags8 {
const mask = Flags8(1) << 2
return f | mask
}
// Unset2 will unset the flag bit value at index 2.
func (f Flags8) Unset2() Flags8 {
const mask = Flags8(1) << 2
return f & ^mask
}
// Get3 will fetch the flag bit value at index 3.
func (f Flags8) Get3() bool {
const mask = Flags8(1) << 3
return (f&mask != 0)
}
// Set3 will set the flag bit value at index 3.
func (f Flags8) Set3() Flags8 {
const mask = Flags8(1) << 3
return f | mask
}
// Unset3 will unset the flag bit value at index 3.
func (f Flags8) Unset3() Flags8 {
const mask = Flags8(1) << 3
return f & ^mask
}
// Get4 will fetch the flag bit value at index 4.
func (f Flags8) Get4() bool {
const mask = Flags8(1) << 4
return (f&mask != 0)
}
// Set4 will set the flag bit value at index 4.
func (f Flags8) Set4() Flags8 {
const mask = Flags8(1) << 4
return f | mask
}
// Unset4 will unset the flag bit value at index 4.
func (f Flags8) Unset4() Flags8 {
const mask = Flags8(1) << 4
return f & ^mask
}
// Get5 will fetch the flag bit value at index 5.
func (f Flags8) Get5() bool {
const mask = Flags8(1) << 5
return (f&mask != 0)
}
// Set5 will set the flag bit value at index 5.
func (f Flags8) Set5() Flags8 {
const mask = Flags8(1) << 5
return f | mask
}
// Unset5 will unset the flag bit value at index 5.
func (f Flags8) Unset5() Flags8 {
const mask = Flags8(1) << 5
return f & ^mask
}
// Get6 will fetch the flag bit value at index 6.
func (f Flags8) Get6() bool {
const mask = Flags8(1) << 6
return (f&mask != 0)
}
// Set6 will set the flag bit value at index 6.
func (f Flags8) Set6() Flags8 {
const mask = Flags8(1) << 6
return f | mask
}
// Unset6 will unset the flag bit value at index 6.
func (f Flags8) Unset6() Flags8 {
const mask = Flags8(1) << 6
return f & ^mask
}
// Get7 will fetch the flag bit value at index 7.
func (f Flags8) Get7() bool {
const mask = Flags8(1) << 7
return (f&mask != 0)
}
// Set7 will set the flag bit value at index 7.
func (f Flags8) Set7() Flags8 {
const mask = Flags8(1) << 7
return f | mask
}
// Unset7 will unset the flag bit value at index 7.
func (f Flags8) Unset7() Flags8 {
const mask = Flags8(1) << 7
return f & ^mask
}
// String returns a human readable representation of Flags8.
func (f Flags8) String() string {
var val bool
[chore] consolidate caching libraries (#704) * add miekg/dns dependency * set/validate accountDomain * move finger to dereferencer * totally break GetRemoteAccount * start reworking finger func a bit * start reworking getRemoteAccount a bit * move mention parts to namestring * rework webfingerget * use util function to extract webfinger parts * use accountDomain * rework finger again, final form * just a real nasty commit, the worst * remove refresh from account * use new ASRepToAccount signature * fix incorrect debug call * fix for new getRemoteAccount * rework GetRemoteAccount * start updating tests to remove repetition * break a lot of tests Move shared test logic into the testrig, rather than having it scattered all over the place. This allows us to just mock the transport controller once, and have all tests use it (unless they need not to for some other reason). * fix up tests to use main mock httpclient * webfinger only if necessary * cheeky linting with the lads * update mentionName regex recognize instance accounts * don't finger instance accounts * test webfinger part extraction * increase default worker count to 4 per cpu * don't repeat regex parsing * final search for discovered accountDomain * be more permissive in namestring lookup * add more extraction tests * simplify GetParseMentionFunc * skip long search if local account * fix broken test * consolidate to all use same caching libraries Signed-off-by: kim <grufwub@gmail.com> * perform more caching in the database layer Signed-off-by: kim <grufwub@gmail.com> * remove ASNote cache Signed-off-by: kim <grufwub@gmail.com> * update cache library, improve db tracing hooks Signed-off-by: kim <grufwub@gmail.com> * return ErrNoEntries if no account status IDs found, small formatting changes Signed-off-by: kim <grufwub@gmail.com> * fix tests, thanks tobi! Signed-off-by: kim <grufwub@gmail.com> Co-authored-by: tsmethurst <tobi.smethurst@protonmail.com>
2022-07-10 16:18:21 +01:00
var buf byteutil.Buffer
buf.WriteByte('{')
val = f.Get0()
buf.WriteString(bool2str(val) + " ")
val = f.Get1()
buf.WriteString(bool2str(val) + " ")
val = f.Get2()
buf.WriteString(bool2str(val) + " ")
val = f.Get3()
buf.WriteString(bool2str(val) + " ")
val = f.Get4()
buf.WriteString(bool2str(val) + " ")
val = f.Get5()
buf.WriteString(bool2str(val) + " ")
val = f.Get6()
buf.WriteString(bool2str(val) + " ")
val = f.Get7()
buf.WriteString(bool2str(val) + " ")
buf.Truncate(1)
buf.WriteByte('}')
return buf.String()
}
// GoString returns a more verbose human readable representation of Flags8.
func (f Flags8) GoString() string {
var val bool
[chore] consolidate caching libraries (#704) * add miekg/dns dependency * set/validate accountDomain * move finger to dereferencer * totally break GetRemoteAccount * start reworking finger func a bit * start reworking getRemoteAccount a bit * move mention parts to namestring * rework webfingerget * use util function to extract webfinger parts * use accountDomain * rework finger again, final form * just a real nasty commit, the worst * remove refresh from account * use new ASRepToAccount signature * fix incorrect debug call * fix for new getRemoteAccount * rework GetRemoteAccount * start updating tests to remove repetition * break a lot of tests Move shared test logic into the testrig, rather than having it scattered all over the place. This allows us to just mock the transport controller once, and have all tests use it (unless they need not to for some other reason). * fix up tests to use main mock httpclient * webfinger only if necessary * cheeky linting with the lads * update mentionName regex recognize instance accounts * don't finger instance accounts * test webfinger part extraction * increase default worker count to 4 per cpu * don't repeat regex parsing * final search for discovered accountDomain * be more permissive in namestring lookup * add more extraction tests * simplify GetParseMentionFunc * skip long search if local account * fix broken test * consolidate to all use same caching libraries Signed-off-by: kim <grufwub@gmail.com> * perform more caching in the database layer Signed-off-by: kim <grufwub@gmail.com> * remove ASNote cache Signed-off-by: kim <grufwub@gmail.com> * update cache library, improve db tracing hooks Signed-off-by: kim <grufwub@gmail.com> * return ErrNoEntries if no account status IDs found, small formatting changes Signed-off-by: kim <grufwub@gmail.com> * fix tests, thanks tobi! Signed-off-by: kim <grufwub@gmail.com> Co-authored-by: tsmethurst <tobi.smethurst@protonmail.com>
2022-07-10 16:18:21 +01:00
var buf byteutil.Buffer
buf.WriteString("bitutil.Flags8{")
val = f.Get0()
buf.WriteString("0=" + bool2str(val) + " ")
val = f.Get1()
buf.WriteString("1=" + bool2str(val) + " ")
val = f.Get2()
buf.WriteString("2=" + bool2str(val) + " ")
val = f.Get3()
buf.WriteString("3=" + bool2str(val) + " ")
val = f.Get4()
buf.WriteString("4=" + bool2str(val) + " ")
val = f.Get5()
buf.WriteString("5=" + bool2str(val) + " ")
val = f.Get6()
buf.WriteString("6=" + bool2str(val) + " ")
val = f.Get7()
buf.WriteString("7=" + bool2str(val) + " ")
buf.Truncate(1)
buf.WriteByte('}')
return buf.String()
}
// Flags16 is a type-casted unsigned integer with helper
// methods for easily managing up to 16 bit flags.
type Flags16 uint16
// Get will fetch the flag bit value at index 'bit'.
func (f Flags16) Get(bit uint8) bool {
mask := Flags16(1) << bit
return (f&mask != 0)
}
// Set will set the flag bit value at index 'bit'.
func (f Flags16) Set(bit uint8) Flags16 {
mask := Flags16(1) << bit
return f | mask
}
// Unset will unset the flag bit value at index 'bit'.
func (f Flags16) Unset(bit uint8) Flags16 {
mask := Flags16(1) << bit
return f & ^mask
}
// Get0 will fetch the flag bit value at index 0.
func (f Flags16) Get0() bool {
const mask = Flags16(1) << 0
return (f&mask != 0)
}
// Set0 will set the flag bit value at index 0.
func (f Flags16) Set0() Flags16 {
const mask = Flags16(1) << 0
return f | mask
}
// Unset0 will unset the flag bit value at index 0.
func (f Flags16) Unset0() Flags16 {
const mask = Flags16(1) << 0
return f & ^mask
}
// Get1 will fetch the flag bit value at index 1.
func (f Flags16) Get1() bool {
const mask = Flags16(1) << 1
return (f&mask != 0)
}
// Set1 will set the flag bit value at index 1.
func (f Flags16) Set1() Flags16 {
const mask = Flags16(1) << 1
return f | mask
}
// Unset1 will unset the flag bit value at index 1.
func (f Flags16) Unset1() Flags16 {
const mask = Flags16(1) << 1
return f & ^mask
}
// Get2 will fetch the flag bit value at index 2.
func (f Flags16) Get2() bool {
const mask = Flags16(1) << 2
return (f&mask != 0)
}
// Set2 will set the flag bit value at index 2.
func (f Flags16) Set2() Flags16 {
const mask = Flags16(1) << 2
return f | mask
}
// Unset2 will unset the flag bit value at index 2.
func (f Flags16) Unset2() Flags16 {
const mask = Flags16(1) << 2
return f & ^mask
}
// Get3 will fetch the flag bit value at index 3.
func (f Flags16) Get3() bool {
const mask = Flags16(1) << 3
return (f&mask != 0)
}
// Set3 will set the flag bit value at index 3.
func (f Flags16) Set3() Flags16 {
const mask = Flags16(1) << 3
return f | mask
}
// Unset3 will unset the flag bit value at index 3.
func (f Flags16) Unset3() Flags16 {
const mask = Flags16(1) << 3
return f & ^mask
}
// Get4 will fetch the flag bit value at index 4.
func (f Flags16) Get4() bool {
const mask = Flags16(1) << 4
return (f&mask != 0)
}
// Set4 will set the flag bit value at index 4.
func (f Flags16) Set4() Flags16 {
const mask = Flags16(1) << 4
return f | mask
}
// Unset4 will unset the flag bit value at index 4.
func (f Flags16) Unset4() Flags16 {
const mask = Flags16(1) << 4
return f & ^mask
}
// Get5 will fetch the flag bit value at index 5.
func (f Flags16) Get5() bool {
const mask = Flags16(1) << 5
return (f&mask != 0)
}
// Set5 will set the flag bit value at index 5.
func (f Flags16) Set5() Flags16 {
const mask = Flags16(1) << 5
return f | mask
}
// Unset5 will unset the flag bit value at index 5.
func (f Flags16) Unset5() Flags16 {
const mask = Flags16(1) << 5
return f & ^mask
}
// Get6 will fetch the flag bit value at index 6.
func (f Flags16) Get6() bool {
const mask = Flags16(1) << 6
return (f&mask != 0)
}
// Set6 will set the flag bit value at index 6.
func (f Flags16) Set6() Flags16 {
const mask = Flags16(1) << 6
return f | mask
}
// Unset6 will unset the flag bit value at index 6.
func (f Flags16) Unset6() Flags16 {
const mask = Flags16(1) << 6
return f & ^mask
}
// Get7 will fetch the flag bit value at index 7.
func (f Flags16) Get7() bool {
const mask = Flags16(1) << 7
return (f&mask != 0)
}
// Set7 will set the flag bit value at index 7.
func (f Flags16) Set7() Flags16 {
const mask = Flags16(1) << 7
return f | mask
}
// Unset7 will unset the flag bit value at index 7.
func (f Flags16) Unset7() Flags16 {
const mask = Flags16(1) << 7
return f & ^mask
}
// Get8 will fetch the flag bit value at index 8.
func (f Flags16) Get8() bool {
const mask = Flags16(1) << 8
return (f&mask != 0)
}
// Set8 will set the flag bit value at index 8.
func (f Flags16) Set8() Flags16 {
const mask = Flags16(1) << 8
return f | mask
}
// Unset8 will unset the flag bit value at index 8.
func (f Flags16) Unset8() Flags16 {
const mask = Flags16(1) << 8
return f & ^mask
}
// Get9 will fetch the flag bit value at index 9.
func (f Flags16) Get9() bool {
const mask = Flags16(1) << 9
return (f&mask != 0)
}
// Set9 will set the flag bit value at index 9.
func (f Flags16) Set9() Flags16 {
const mask = Flags16(1) << 9
return f | mask
}
// Unset9 will unset the flag bit value at index 9.
func (f Flags16) Unset9() Flags16 {
const mask = Flags16(1) << 9
return f & ^mask
}
// Get10 will fetch the flag bit value at index 10.
func (f Flags16) Get10() bool {
const mask = Flags16(1) << 10
return (f&mask != 0)
}
// Set10 will set the flag bit value at index 10.
func (f Flags16) Set10() Flags16 {
const mask = Flags16(1) << 10
return f | mask
}
// Unset10 will unset the flag bit value at index 10.
func (f Flags16) Unset10() Flags16 {
const mask = Flags16(1) << 10
return f & ^mask
}
// Get11 will fetch the flag bit value at index 11.
func (f Flags16) Get11() bool {
const mask = Flags16(1) << 11
return (f&mask != 0)
}
// Set11 will set the flag bit value at index 11.
func (f Flags16) Set11() Flags16 {
const mask = Flags16(1) << 11
return f | mask
}
// Unset11 will unset the flag bit value at index 11.
func (f Flags16) Unset11() Flags16 {
const mask = Flags16(1) << 11
return f & ^mask
}
// Get12 will fetch the flag bit value at index 12.
func (f Flags16) Get12() bool {
const mask = Flags16(1) << 12
return (f&mask != 0)
}
// Set12 will set the flag bit value at index 12.
func (f Flags16) Set12() Flags16 {
const mask = Flags16(1) << 12
return f | mask
}
// Unset12 will unset the flag bit value at index 12.
func (f Flags16) Unset12() Flags16 {
const mask = Flags16(1) << 12
return f & ^mask
}
// Get13 will fetch the flag bit value at index 13.
func (f Flags16) Get13() bool {
const mask = Flags16(1) << 13
return (f&mask != 0)
}
// Set13 will set the flag bit value at index 13.
func (f Flags16) Set13() Flags16 {
const mask = Flags16(1) << 13
return f | mask
}
// Unset13 will unset the flag bit value at index 13.
func (f Flags16) Unset13() Flags16 {
const mask = Flags16(1) << 13
return f & ^mask
}
// Get14 will fetch the flag bit value at index 14.
func (f Flags16) Get14() bool {
const mask = Flags16(1) << 14
return (f&mask != 0)
}
// Set14 will set the flag bit value at index 14.
func (f Flags16) Set14() Flags16 {
const mask = Flags16(1) << 14
return f | mask
}
// Unset14 will unset the flag bit value at index 14.
func (f Flags16) Unset14() Flags16 {
const mask = Flags16(1) << 14
return f & ^mask
}
// Get15 will fetch the flag bit value at index 15.
func (f Flags16) Get15() bool {
const mask = Flags16(1) << 15
return (f&mask != 0)
}
// Set15 will set the flag bit value at index 15.
func (f Flags16) Set15() Flags16 {
const mask = Flags16(1) << 15
return f | mask
}
// Unset15 will unset the flag bit value at index 15.
func (f Flags16) Unset15() Flags16 {
const mask = Flags16(1) << 15
return f & ^mask
}
// String returns a human readable representation of Flags16.
func (f Flags16) String() string {
var val bool
[chore] consolidate caching libraries (#704) * add miekg/dns dependency * set/validate accountDomain * move finger to dereferencer * totally break GetRemoteAccount * start reworking finger func a bit * start reworking getRemoteAccount a bit * move mention parts to namestring * rework webfingerget * use util function to extract webfinger parts * use accountDomain * rework finger again, final form * just a real nasty commit, the worst * remove refresh from account * use new ASRepToAccount signature * fix incorrect debug call * fix for new getRemoteAccount * rework GetRemoteAccount * start updating tests to remove repetition * break a lot of tests Move shared test logic into the testrig, rather than having it scattered all over the place. This allows us to just mock the transport controller once, and have all tests use it (unless they need not to for some other reason). * fix up tests to use main mock httpclient * webfinger only if necessary * cheeky linting with the lads * update mentionName regex recognize instance accounts * don't finger instance accounts * test webfinger part extraction * increase default worker count to 4 per cpu * don't repeat regex parsing * final search for discovered accountDomain * be more permissive in namestring lookup * add more extraction tests * simplify GetParseMentionFunc * skip long search if local account * fix broken test * consolidate to all use same caching libraries Signed-off-by: kim <grufwub@gmail.com> * perform more caching in the database layer Signed-off-by: kim <grufwub@gmail.com> * remove ASNote cache Signed-off-by: kim <grufwub@gmail.com> * update cache library, improve db tracing hooks Signed-off-by: kim <grufwub@gmail.com> * return ErrNoEntries if no account status IDs found, small formatting changes Signed-off-by: kim <grufwub@gmail.com> * fix tests, thanks tobi! Signed-off-by: kim <grufwub@gmail.com> Co-authored-by: tsmethurst <tobi.smethurst@protonmail.com>
2022-07-10 16:18:21 +01:00
var buf byteutil.Buffer
buf.WriteByte('{')
val = f.Get0()
buf.WriteString(bool2str(val) + " ")
val = f.Get1()
buf.WriteString(bool2str(val) + " ")
val = f.Get2()
buf.WriteString(bool2str(val) + " ")
val = f.Get3()
buf.WriteString(bool2str(val) + " ")
val = f.Get4()
buf.WriteString(bool2str(val) + " ")
val = f.Get5()
buf.WriteString(bool2str(val) + " ")
val = f.Get6()
buf.WriteString(bool2str(val) + " ")
val = f.Get7()
buf.WriteString(bool2str(val) + " ")
val = f.Get8()
buf.WriteString(bool2str(val) + " ")
val = f.Get9()
buf.WriteString(bool2str(val) + " ")
val = f.Get10()
buf.WriteString(bool2str(val) + " ")
val = f.Get11()
buf.WriteString(bool2str(val) + " ")
val = f.Get12()
buf.WriteString(bool2str(val) + " ")
val = f.Get13()
buf.WriteString(bool2str(val) + " ")
val = f.Get14()
buf.WriteString(bool2str(val) + " ")
val = f.Get15()
buf.WriteString(bool2str(val) + " ")
buf.Truncate(1)
buf.WriteByte('}')
return buf.String()
}
// GoString returns a more verbose human readable representation of Flags16.
func (f Flags16) GoString() string {
var val bool
[chore] consolidate caching libraries (#704) * add miekg/dns dependency * set/validate accountDomain * move finger to dereferencer * totally break GetRemoteAccount * start reworking finger func a bit * start reworking getRemoteAccount a bit * move mention parts to namestring * rework webfingerget * use util function to extract webfinger parts * use accountDomain * rework finger again, final form * just a real nasty commit, the worst * remove refresh from account * use new ASRepToAccount signature * fix incorrect debug call * fix for new getRemoteAccount * rework GetRemoteAccount * start updating tests to remove repetition * break a lot of tests Move shared test logic into the testrig, rather than having it scattered all over the place. This allows us to just mock the transport controller once, and have all tests use it (unless they need not to for some other reason). * fix up tests to use main mock httpclient * webfinger only if necessary * cheeky linting with the lads * update mentionName regex recognize instance accounts * don't finger instance accounts * test webfinger part extraction * increase default worker count to 4 per cpu * don't repeat regex parsing * final search for discovered accountDomain * be more permissive in namestring lookup * add more extraction tests * simplify GetParseMentionFunc * skip long search if local account * fix broken test * consolidate to all use same caching libraries Signed-off-by: kim <grufwub@gmail.com> * perform more caching in the database layer Signed-off-by: kim <grufwub@gmail.com> * remove ASNote cache Signed-off-by: kim <grufwub@gmail.com> * update cache library, improve db tracing hooks Signed-off-by: kim <grufwub@gmail.com> * return ErrNoEntries if no account status IDs found, small formatting changes Signed-off-by: kim <grufwub@gmail.com> * fix tests, thanks tobi! Signed-off-by: kim <grufwub@gmail.com> Co-authored-by: tsmethurst <tobi.smethurst@protonmail.com>
2022-07-10 16:18:21 +01:00
var buf byteutil.Buffer
buf.WriteString("bitutil.Flags16{")
val = f.Get0()
buf.WriteString("0=" + bool2str(val) + " ")
val = f.Get1()
buf.WriteString("1=" + bool2str(val) + " ")
val = f.Get2()
buf.WriteString("2=" + bool2str(val) + " ")
val = f.Get3()
buf.WriteString("3=" + bool2str(val) + " ")
val = f.Get4()
buf.WriteString("4=" + bool2str(val) + " ")
val = f.Get5()
buf.WriteString("5=" + bool2str(val) + " ")
val = f.Get6()
buf.WriteString("6=" + bool2str(val) + " ")
val = f.Get7()
buf.WriteString("7=" + bool2str(val) + " ")
val = f.Get8()
buf.WriteString("8=" + bool2str(val) + " ")
val = f.Get9()
buf.WriteString("9=" + bool2str(val) + " ")
val = f.Get10()
buf.WriteString("10=" + bool2str(val) + " ")
val = f.Get11()
buf.WriteString("11=" + bool2str(val) + " ")
val = f.Get12()
buf.WriteString("12=" + bool2str(val) + " ")
val = f.Get13()
buf.WriteString("13=" + bool2str(val) + " ")
val = f.Get14()
buf.WriteString("14=" + bool2str(val) + " ")
val = f.Get15()
buf.WriteString("15=" + bool2str(val) + " ")
buf.Truncate(1)
buf.WriteByte('}')
return buf.String()
}
// Flags32 is a type-casted unsigned integer with helper
// methods for easily managing up to 32 bit flags.
type Flags32 uint32
// Get will fetch the flag bit value at index 'bit'.
func (f Flags32) Get(bit uint8) bool {
mask := Flags32(1) << bit
return (f&mask != 0)
}
// Set will set the flag bit value at index 'bit'.
func (f Flags32) Set(bit uint8) Flags32 {
mask := Flags32(1) << bit
return f | mask
}
// Unset will unset the flag bit value at index 'bit'.
func (f Flags32) Unset(bit uint8) Flags32 {
mask := Flags32(1) << bit
return f & ^mask
}
// Get0 will fetch the flag bit value at index 0.
func (f Flags32) Get0() bool {
const mask = Flags32(1) << 0
return (f&mask != 0)
}
// Set0 will set the flag bit value at index 0.
func (f Flags32) Set0() Flags32 {
const mask = Flags32(1) << 0
return f | mask
}
// Unset0 will unset the flag bit value at index 0.
func (f Flags32) Unset0() Flags32 {
const mask = Flags32(1) << 0
return f & ^mask
}
// Get1 will fetch the flag bit value at index 1.
func (f Flags32) Get1() bool {
const mask = Flags32(1) << 1
return (f&mask != 0)
}
// Set1 will set the flag bit value at index 1.
func (f Flags32) Set1() Flags32 {
const mask = Flags32(1) << 1
return f | mask
}
// Unset1 will unset the flag bit value at index 1.
func (f Flags32) Unset1() Flags32 {
const mask = Flags32(1) << 1
return f & ^mask
}
// Get2 will fetch the flag bit value at index 2.
func (f Flags32) Get2() bool {
const mask = Flags32(1) << 2
return (f&mask != 0)
}
// Set2 will set the flag bit value at index 2.
func (f Flags32) Set2() Flags32 {
const mask = Flags32(1) << 2
return f | mask
}
// Unset2 will unset the flag bit value at index 2.
func (f Flags32) Unset2() Flags32 {
const mask = Flags32(1) << 2
return f & ^mask
}
// Get3 will fetch the flag bit value at index 3.
func (f Flags32) Get3() bool {
const mask = Flags32(1) << 3
return (f&mask != 0)
}
// Set3 will set the flag bit value at index 3.
func (f Flags32) Set3() Flags32 {
const mask = Flags32(1) << 3
return f | mask
}
// Unset3 will unset the flag bit value at index 3.
func (f Flags32) Unset3() Flags32 {
const mask = Flags32(1) << 3
return f & ^mask
}
// Get4 will fetch the flag bit value at index 4.
func (f Flags32) Get4() bool {
const mask = Flags32(1) << 4
return (f&mask != 0)
}
// Set4 will set the flag bit value at index 4.
func (f Flags32) Set4() Flags32 {
const mask = Flags32(1) << 4
return f | mask
}
// Unset4 will unset the flag bit value at index 4.
func (f Flags32) Unset4() Flags32 {
const mask = Flags32(1) << 4
return f & ^mask
}
// Get5 will fetch the flag bit value at index 5.
func (f Flags32) Get5() bool {
const mask = Flags32(1) << 5
return (f&mask != 0)
}
// Set5 will set the flag bit value at index 5.
func (f Flags32) Set5() Flags32 {
const mask = Flags32(1) << 5
return f | mask
}
// Unset5 will unset the flag bit value at index 5.
func (f Flags32) Unset5() Flags32 {
const mask = Flags32(1) << 5
return f & ^mask
}
// Get6 will fetch the flag bit value at index 6.
func (f Flags32) Get6() bool {
const mask = Flags32(1) << 6
return (f&mask != 0)
}
// Set6 will set the flag bit value at index 6.
func (f Flags32) Set6() Flags32 {
const mask = Flags32(1) << 6
return f | mask
}
// Unset6 will unset the flag bit value at index 6.
func (f Flags32) Unset6() Flags32 {
const mask = Flags32(1) << 6
return f & ^mask
}
// Get7 will fetch the flag bit value at index 7.
func (f Flags32) Get7() bool {
const mask = Flags32(1) << 7
return (f&mask != 0)
}
// Set7 will set the flag bit value at index 7.
func (f Flags32) Set7() Flags32 {
const mask = Flags32(1) << 7
return f | mask
}
// Unset7 will unset the flag bit value at index 7.
func (f Flags32) Unset7() Flags32 {
const mask = Flags32(1) << 7
return f & ^mask
}
// Get8 will fetch the flag bit value at index 8.
func (f Flags32) Get8() bool {
const mask = Flags32(1) << 8
return (f&mask != 0)
}
// Set8 will set the flag bit value at index 8.
func (f Flags32) Set8() Flags32 {
const mask = Flags32(1) << 8
return f | mask
}
// Unset8 will unset the flag bit value at index 8.
func (f Flags32) Unset8() Flags32 {
const mask = Flags32(1) << 8
return f & ^mask
}
// Get9 will fetch the flag bit value at index 9.
func (f Flags32) Get9() bool {
const mask = Flags32(1) << 9
return (f&mask != 0)
}
// Set9 will set the flag bit value at index 9.
func (f Flags32) Set9() Flags32 {
const mask = Flags32(1) << 9
return f | mask
}
// Unset9 will unset the flag bit value at index 9.
func (f Flags32) Unset9() Flags32 {
const mask = Flags32(1) << 9
return f & ^mask
}
// Get10 will fetch the flag bit value at index 10.
func (f Flags32) Get10() bool {
const mask = Flags32(1) << 10
return (f&mask != 0)
}
// Set10 will set the flag bit value at index 10.
func (f Flags32) Set10() Flags32 {
const mask = Flags32(1) << 10
return f | mask
}
// Unset10 will unset the flag bit value at index 10.
func (f Flags32) Unset10() Flags32 {
const mask = Flags32(1) << 10
return f & ^mask
}
// Get11 will fetch the flag bit value at index 11.
func (f Flags32) Get11() bool {
const mask = Flags32(1) << 11
return (f&mask != 0)
}
// Set11 will set the flag bit value at index 11.
func (f Flags32) Set11() Flags32 {
const mask = Flags32(1) << 11
return f | mask
}
// Unset11 will unset the flag bit value at index 11.
func (f Flags32) Unset11() Flags32 {
const mask = Flags32(1) << 11
return f & ^mask
}
// Get12 will fetch the flag bit value at index 12.
func (f Flags32) Get12() bool {
const mask = Flags32(1) << 12
return (f&mask != 0)
}
// Set12 will set the flag bit value at index 12.
func (f Flags32) Set12() Flags32 {
const mask = Flags32(1) << 12
return f | mask
}
// Unset12 will unset the flag bit value at index 12.
func (f Flags32) Unset12() Flags32 {
const mask = Flags32(1) << 12
return f & ^mask
}
// Get13 will fetch the flag bit value at index 13.
func (f Flags32) Get13() bool {
const mask = Flags32(1) << 13
return (f&mask != 0)
}
// Set13 will set the flag bit value at index 13.
func (f Flags32) Set13() Flags32 {
const mask = Flags32(1) << 13
return f | mask
}
// Unset13 will unset the flag bit value at index 13.
func (f Flags32) Unset13() Flags32 {
const mask = Flags32(1) << 13
return f & ^mask
}
// Get14 will fetch the flag bit value at index 14.
func (f Flags32) Get14() bool {
const mask = Flags32(1) << 14
return (f&mask != 0)
}
// Set14 will set the flag bit value at index 14.
func (f Flags32) Set14() Flags32 {
const mask = Flags32(1) << 14
return f | mask
}
// Unset14 will unset the flag bit value at index 14.
func (f Flags32) Unset14() Flags32 {
const mask = Flags32(1) << 14
return f & ^mask
}
// Get15 will fetch the flag bit value at index 15.
func (f Flags32) Get15() bool {
const mask = Flags32(1) << 15
return (f&mask != 0)
}
// Set15 will set the flag bit value at index 15.
func (f Flags32) Set15() Flags32 {
const mask = Flags32(1) << 15
return f | mask
}
// Unset15 will unset the flag bit value at index 15.
func (f Flags32) Unset15() Flags32 {
const mask = Flags32(1) << 15
return f & ^mask
}
// Get16 will fetch the flag bit value at index 16.
func (f Flags32) Get16() bool {
const mask = Flags32(1) << 16
return (f&mask != 0)
}
// Set16 will set the flag bit value at index 16.
func (f Flags32) Set16() Flags32 {
const mask = Flags32(1) << 16
return f | mask
}
// Unset16 will unset the flag bit value at index 16.
func (f Flags32) Unset16() Flags32 {
const mask = Flags32(1) << 16
return f & ^mask
}
// Get17 will fetch the flag bit value at index 17.
func (f Flags32) Get17() bool {
const mask = Flags32(1) << 17
return (f&mask != 0)
}
// Set17 will set the flag bit value at index 17.
func (f Flags32) Set17() Flags32 {
const mask = Flags32(1) << 17
return f | mask
}
// Unset17 will unset the flag bit value at index 17.
func (f Flags32) Unset17() Flags32 {
const mask = Flags32(1) << 17
return f & ^mask
}
// Get18 will fetch the flag bit value at index 18.
func (f Flags32) Get18() bool {
const mask = Flags32(1) << 18
return (f&mask != 0)
}
// Set18 will set the flag bit value at index 18.
func (f Flags32) Set18() Flags32 {
const mask = Flags32(1) << 18
return f | mask
}
// Unset18 will unset the flag bit value at index 18.
func (f Flags32) Unset18() Flags32 {
const mask = Flags32(1) << 18
return f & ^mask
}
// Get19 will fetch the flag bit value at index 19.
func (f Flags32) Get19() bool {
const mask = Flags32(1) << 19
return (f&mask != 0)
}
// Set19 will set the flag bit value at index 19.
func (f Flags32) Set19() Flags32 {
const mask = Flags32(1) << 19
return f | mask
}
// Unset19 will unset the flag bit value at index 19.
func (f Flags32) Unset19() Flags32 {
const mask = Flags32(1) << 19
return f & ^mask
}
// Get20 will fetch the flag bit value at index 20.
func (f Flags32) Get20() bool {
const mask = Flags32(1) << 20
return (f&mask != 0)
}
// Set20 will set the flag bit value at index 20.
func (f Flags32) Set20() Flags32 {
const mask = Flags32(1) << 20
return f | mask
}
// Unset20 will unset the flag bit value at index 20.
func (f Flags32) Unset20() Flags32 {
const mask = Flags32(1) << 20
return f & ^mask
}
// Get21 will fetch the flag bit value at index 21.
func (f Flags32) Get21() bool {
const mask = Flags32(1) << 21
return (f&mask != 0)
}
// Set21 will set the flag bit value at index 21.
func (f Flags32) Set21() Flags32 {
const mask = Flags32(1) << 21
return f | mask
}
// Unset21 will unset the flag bit value at index 21.
func (f Flags32) Unset21() Flags32 {
const mask = Flags32(1) << 21
return f & ^mask
}
// Get22 will fetch the flag bit value at index 22.
func (f Flags32) Get22() bool {
const mask = Flags32(1) << 22
return (f&mask != 0)
}
// Set22 will set the flag bit value at index 22.
func (f Flags32) Set22() Flags32 {
const mask = Flags32(1) << 22
return f | mask
}
// Unset22 will unset the flag bit value at index 22.
func (f Flags32) Unset22() Flags32 {
const mask = Flags32(1) << 22
return f & ^mask
}
// Get23 will fetch the flag bit value at index 23.
func (f Flags32) Get23() bool {
const mask = Flags32(1) << 23
return (f&mask != 0)
}
// Set23 will set the flag bit value at index 23.
func (f Flags32) Set23() Flags32 {
const mask = Flags32(1) << 23
return f | mask
}
// Unset23 will unset the flag bit value at index 23.
func (f Flags32) Unset23() Flags32 {
const mask = Flags32(1) << 23
return f & ^mask
}
// Get24 will fetch the flag bit value at index 24.
func (f Flags32) Get24() bool {
const mask = Flags32(1) << 24
return (f&mask != 0)
}
// Set24 will set the flag bit value at index 24.
func (f Flags32) Set24() Flags32 {
const mask = Flags32(1) << 24
return f | mask
}
// Unset24 will unset the flag bit value at index 24.
func (f Flags32) Unset24() Flags32 {
const mask = Flags32(1) << 24
return f & ^mask
}
// Get25 will fetch the flag bit value at index 25.
func (f Flags32) Get25() bool {
const mask = Flags32(1) << 25
return (f&mask != 0)
}
// Set25 will set the flag bit value at index 25.
func (f Flags32) Set25() Flags32 {
const mask = Flags32(1) << 25
return f | mask
}
// Unset25 will unset the flag bit value at index 25.
func (f Flags32) Unset25() Flags32 {
const mask = Flags32(1) << 25
return f & ^mask
}
// Get26 will fetch the flag bit value at index 26.
func (f Flags32) Get26() bool {
const mask = Flags32(1) << 26
return (f&mask != 0)
}
// Set26 will set the flag bit value at index 26.
func (f Flags32) Set26() Flags32 {
const mask = Flags32(1) << 26
return f | mask
}
// Unset26 will unset the flag bit value at index 26.
func (f Flags32) Unset26() Flags32 {
const mask = Flags32(1) << 26
return f & ^mask
}
// Get27 will fetch the flag bit value at index 27.
func (f Flags32) Get27() bool {
const mask = Flags32(1) << 27
return (f&mask != 0)
}
// Set27 will set the flag bit value at index 27.
func (f Flags32) Set27() Flags32 {
const mask = Flags32(1) << 27
return f | mask
}
// Unset27 will unset the flag bit value at index 27.
func (f Flags32) Unset27() Flags32 {
const mask = Flags32(1) << 27
return f & ^mask
}
// Get28 will fetch the flag bit value at index 28.
func (f Flags32) Get28() bool {
const mask = Flags32(1) << 28
return (f&mask != 0)
}
// Set28 will set the flag bit value at index 28.
func (f Flags32) Set28() Flags32 {
const mask = Flags32(1) << 28
return f | mask
}
// Unset28 will unset the flag bit value at index 28.
func (f Flags32) Unset28() Flags32 {
const mask = Flags32(1) << 28
return f & ^mask
}
// Get29 will fetch the flag bit value at index 29.
func (f Flags32) Get29() bool {
const mask = Flags32(1) << 29
return (f&mask != 0)
}
// Set29 will set the flag bit value at index 29.
func (f Flags32) Set29() Flags32 {
const mask = Flags32(1) << 29
return f | mask
}
// Unset29 will unset the flag bit value at index 29.
func (f Flags32) Unset29() Flags32 {
const mask = Flags32(1) << 29
return f & ^mask
}
// Get30 will fetch the flag bit value at index 30.
func (f Flags32) Get30() bool {
const mask = Flags32(1) << 30
return (f&mask != 0)
}
// Set30 will set the flag bit value at index 30.
func (f Flags32) Set30() Flags32 {
const mask = Flags32(1) << 30
return f | mask
}
// Unset30 will unset the flag bit value at index 30.
func (f Flags32) Unset30() Flags32 {
const mask = Flags32(1) << 30
return f & ^mask
}
// Get31 will fetch the flag bit value at index 31.
func (f Flags32) Get31() bool {
const mask = Flags32(1) << 31
return (f&mask != 0)
}
// Set31 will set the flag bit value at index 31.
func (f Flags32) Set31() Flags32 {
const mask = Flags32(1) << 31
return f | mask
}
// Unset31 will unset the flag bit value at index 31.
func (f Flags32) Unset31() Flags32 {
const mask = Flags32(1) << 31
return f & ^mask
}
// String returns a human readable representation of Flags32.
func (f Flags32) String() string {
var val bool
[chore] consolidate caching libraries (#704) * add miekg/dns dependency * set/validate accountDomain * move finger to dereferencer * totally break GetRemoteAccount * start reworking finger func a bit * start reworking getRemoteAccount a bit * move mention parts to namestring * rework webfingerget * use util function to extract webfinger parts * use accountDomain * rework finger again, final form * just a real nasty commit, the worst * remove refresh from account * use new ASRepToAccount signature * fix incorrect debug call * fix for new getRemoteAccount * rework GetRemoteAccount * start updating tests to remove repetition * break a lot of tests Move shared test logic into the testrig, rather than having it scattered all over the place. This allows us to just mock the transport controller once, and have all tests use it (unless they need not to for some other reason). * fix up tests to use main mock httpclient * webfinger only if necessary * cheeky linting with the lads * update mentionName regex recognize instance accounts * don't finger instance accounts * test webfinger part extraction * increase default worker count to 4 per cpu * don't repeat regex parsing * final search for discovered accountDomain * be more permissive in namestring lookup * add more extraction tests * simplify GetParseMentionFunc * skip long search if local account * fix broken test * consolidate to all use same caching libraries Signed-off-by: kim <grufwub@gmail.com> * perform more caching in the database layer Signed-off-by: kim <grufwub@gmail.com> * remove ASNote cache Signed-off-by: kim <grufwub@gmail.com> * update cache library, improve db tracing hooks Signed-off-by: kim <grufwub@gmail.com> * return ErrNoEntries if no account status IDs found, small formatting changes Signed-off-by: kim <grufwub@gmail.com> * fix tests, thanks tobi! Signed-off-by: kim <grufwub@gmail.com> Co-authored-by: tsmethurst <tobi.smethurst@protonmail.com>
2022-07-10 16:18:21 +01:00
var buf byteutil.Buffer
buf.WriteByte('{')
val = f.Get0()
buf.WriteString(bool2str(val) + " ")
val = f.Get1()
buf.WriteString(bool2str(val) + " ")
val = f.Get2()
buf.WriteString(bool2str(val) + " ")
val = f.Get3()
buf.WriteString(bool2str(val) + " ")
val = f.Get4()
buf.WriteString(bool2str(val) + " ")
val = f.Get5()
buf.WriteString(bool2str(val) + " ")
val = f.Get6()
buf.WriteString(bool2str(val) + " ")
val = f.Get7()
buf.WriteString(bool2str(val) + " ")
val = f.Get8()
buf.WriteString(bool2str(val) + " ")
val = f.Get9()
buf.WriteString(bool2str(val) + " ")
val = f.Get10()
buf.WriteString(bool2str(val) + " ")
val = f.Get11()
buf.WriteString(bool2str(val) + " ")
val = f.Get12()
buf.WriteString(bool2str(val) + " ")
val = f.Get13()
buf.WriteString(bool2str(val) + " ")
val = f.Get14()
buf.WriteString(bool2str(val) + " ")
val = f.Get15()
buf.WriteString(bool2str(val) + " ")
val = f.Get16()
buf.WriteString(bool2str(val) + " ")
val = f.Get17()
buf.WriteString(bool2str(val) + " ")
val = f.Get18()
buf.WriteString(bool2str(val) + " ")
val = f.Get19()
buf.WriteString(bool2str(val) + " ")
val = f.Get20()
buf.WriteString(bool2str(val) + " ")
val = f.Get21()
buf.WriteString(bool2str(val) + " ")
val = f.Get22()
buf.WriteString(bool2str(val) + " ")
val = f.Get23()
buf.WriteString(bool2str(val) + " ")
val = f.Get24()
buf.WriteString(bool2str(val) + " ")
val = f.Get25()
buf.WriteString(bool2str(val) + " ")
val = f.Get26()
buf.WriteString(bool2str(val) + " ")
val = f.Get27()
buf.WriteString(bool2str(val) + " ")
val = f.Get28()
buf.WriteString(bool2str(val) + " ")
val = f.Get29()
buf.WriteString(bool2str(val) + " ")
val = f.Get30()
buf.WriteString(bool2str(val) + " ")
val = f.Get31()
buf.WriteString(bool2str(val) + " ")
buf.Truncate(1)
buf.WriteByte('}')
return buf.String()
}
// GoString returns a more verbose human readable representation of Flags32.
func (f Flags32) GoString() string {
var val bool
[chore] consolidate caching libraries (#704) * add miekg/dns dependency * set/validate accountDomain * move finger to dereferencer * totally break GetRemoteAccount * start reworking finger func a bit * start reworking getRemoteAccount a bit * move mention parts to namestring * rework webfingerget * use util function to extract webfinger parts * use accountDomain * rework finger again, final form * just a real nasty commit, the worst * remove refresh from account * use new ASRepToAccount signature * fix incorrect debug call * fix for new getRemoteAccount * rework GetRemoteAccount * start updating tests to remove repetition * break a lot of tests Move shared test logic into the testrig, rather than having it scattered all over the place. This allows us to just mock the transport controller once, and have all tests use it (unless they need not to for some other reason). * fix up tests to use main mock httpclient * webfinger only if necessary * cheeky linting with the lads * update mentionName regex recognize instance accounts * don't finger instance accounts * test webfinger part extraction * increase default worker count to 4 per cpu * don't repeat regex parsing * final search for discovered accountDomain * be more permissive in namestring lookup * add more extraction tests * simplify GetParseMentionFunc * skip long search if local account * fix broken test * consolidate to all use same caching libraries Signed-off-by: kim <grufwub@gmail.com> * perform more caching in the database layer Signed-off-by: kim <grufwub@gmail.com> * remove ASNote cache Signed-off-by: kim <grufwub@gmail.com> * update cache library, improve db tracing hooks Signed-off-by: kim <grufwub@gmail.com> * return ErrNoEntries if no account status IDs found, small formatting changes Signed-off-by: kim <grufwub@gmail.com> * fix tests, thanks tobi! Signed-off-by: kim <grufwub@gmail.com> Co-authored-by: tsmethurst <tobi.smethurst@protonmail.com>
2022-07-10 16:18:21 +01:00
var buf byteutil.Buffer
buf.WriteString("bitutil.Flags32{")
val = f.Get0()
buf.WriteString("0=" + bool2str(val) + " ")
val = f.Get1()
buf.WriteString("1=" + bool2str(val) + " ")
val = f.Get2()
buf.WriteString("2=" + bool2str(val) + " ")
val = f.Get3()
buf.WriteString("3=" + bool2str(val) + " ")
val = f.Get4()
buf.WriteString("4=" + bool2str(val) + " ")
val = f.Get5()
buf.WriteString("5=" + bool2str(val) + " ")
val = f.Get6()
buf.WriteString("6=" + bool2str(val) + " ")
val = f.Get7()
buf.WriteString("7=" + bool2str(val) + " ")
val = f.Get8()
buf.WriteString("8=" + bool2str(val) + " ")
val = f.Get9()
buf.WriteString("9=" + bool2str(val) + " ")
val = f.Get10()
buf.WriteString("10=" + bool2str(val) + " ")
val = f.Get11()
buf.WriteString("11=" + bool2str(val) + " ")
val = f.Get12()
buf.WriteString("12=" + bool2str(val) + " ")
val = f.Get13()
buf.WriteString("13=" + bool2str(val) + " ")
val = f.Get14()
buf.WriteString("14=" + bool2str(val) + " ")
val = f.Get15()
buf.WriteString("15=" + bool2str(val) + " ")
val = f.Get16()
buf.WriteString("16=" + bool2str(val) + " ")
val = f.Get17()
buf.WriteString("17=" + bool2str(val) + " ")
val = f.Get18()
buf.WriteString("18=" + bool2str(val) + " ")
val = f.Get19()
buf.WriteString("19=" + bool2str(val) + " ")
val = f.Get20()
buf.WriteString("20=" + bool2str(val) + " ")
val = f.Get21()
buf.WriteString("21=" + bool2str(val) + " ")
val = f.Get22()
buf.WriteString("22=" + bool2str(val) + " ")
val = f.Get23()
buf.WriteString("23=" + bool2str(val) + " ")
val = f.Get24()
buf.WriteString("24=" + bool2str(val) + " ")
val = f.Get25()
buf.WriteString("25=" + bool2str(val) + " ")
val = f.Get26()
buf.WriteString("26=" + bool2str(val) + " ")
val = f.Get27()
buf.WriteString("27=" + bool2str(val) + " ")
val = f.Get28()
buf.WriteString("28=" + bool2str(val) + " ")
val = f.Get29()
buf.WriteString("29=" + bool2str(val) + " ")
val = f.Get30()
buf.WriteString("30=" + bool2str(val) + " ")
val = f.Get31()
buf.WriteString("31=" + bool2str(val) + " ")
buf.Truncate(1)
buf.WriteByte('}')
return buf.String()
}
// Flags64 is a type-casted unsigned integer with helper
// methods for easily managing up to 64 bit flags.
type Flags64 uint64
// Get will fetch the flag bit value at index 'bit'.
func (f Flags64) Get(bit uint8) bool {
mask := Flags64(1) << bit
return (f&mask != 0)
}
// Set will set the flag bit value at index 'bit'.
func (f Flags64) Set(bit uint8) Flags64 {
mask := Flags64(1) << bit
return f | mask
}
// Unset will unset the flag bit value at index 'bit'.
func (f Flags64) Unset(bit uint8) Flags64 {
mask := Flags64(1) << bit
return f & ^mask
}
// Get0 will fetch the flag bit value at index 0.
func (f Flags64) Get0() bool {
const mask = Flags64(1) << 0
return (f&mask != 0)
}
// Set0 will set the flag bit value at index 0.
func (f Flags64) Set0() Flags64 {
const mask = Flags64(1) << 0
return f | mask
}
// Unset0 will unset the flag bit value at index 0.
func (f Flags64) Unset0() Flags64 {
const mask = Flags64(1) << 0
return f & ^mask
}
// Get1 will fetch the flag bit value at index 1.
func (f Flags64) Get1() bool {
const mask = Flags64(1) << 1
return (f&mask != 0)
}
// Set1 will set the flag bit value at index 1.
func (f Flags64) Set1() Flags64 {
const mask = Flags64(1) << 1
return f | mask
}
// Unset1 will unset the flag bit value at index 1.
func (f Flags64) Unset1() Flags64 {
const mask = Flags64(1) << 1
return f & ^mask
}
// Get2 will fetch the flag bit value at index 2.
func (f Flags64) Get2() bool {
const mask = Flags64(1) << 2
return (f&mask != 0)
}
// Set2 will set the flag bit value at index 2.
func (f Flags64) Set2() Flags64 {
const mask = Flags64(1) << 2
return f | mask
}
// Unset2 will unset the flag bit value at index 2.
func (f Flags64) Unset2() Flags64 {
const mask = Flags64(1) << 2
return f & ^mask
}
// Get3 will fetch the flag bit value at index 3.
func (f Flags64) Get3() bool {
const mask = Flags64(1) << 3
return (f&mask != 0)
}
// Set3 will set the flag bit value at index 3.
func (f Flags64) Set3() Flags64 {
const mask = Flags64(1) << 3
return f | mask
}
// Unset3 will unset the flag bit value at index 3.
func (f Flags64) Unset3() Flags64 {
const mask = Flags64(1) << 3
return f & ^mask
}
// Get4 will fetch the flag bit value at index 4.
func (f Flags64) Get4() bool {
const mask = Flags64(1) << 4
return (f&mask != 0)
}
// Set4 will set the flag bit value at index 4.
func (f Flags64) Set4() Flags64 {
const mask = Flags64(1) << 4
return f | mask
}
// Unset4 will unset the flag bit value at index 4.
func (f Flags64) Unset4() Flags64 {
const mask = Flags64(1) << 4
return f & ^mask
}
// Get5 will fetch the flag bit value at index 5.
func (f Flags64) Get5() bool {
const mask = Flags64(1) << 5
return (f&mask != 0)
}
// Set5 will set the flag bit value at index 5.
func (f Flags64) Set5() Flags64 {
const mask = Flags64(1) << 5
return f | mask
}
// Unset5 will unset the flag bit value at index 5.
func (f Flags64) Unset5() Flags64 {
const mask = Flags64(1) << 5
return f & ^mask
}
// Get6 will fetch the flag bit value at index 6.
func (f Flags64) Get6() bool {
const mask = Flags64(1) << 6
return (f&mask != 0)
}
// Set6 will set the flag bit value at index 6.
func (f Flags64) Set6() Flags64 {
const mask = Flags64(1) << 6
return f | mask
}
// Unset6 will unset the flag bit value at index 6.
func (f Flags64) Unset6() Flags64 {
const mask = Flags64(1) << 6
return f & ^mask
}
// Get7 will fetch the flag bit value at index 7.
func (f Flags64) Get7() bool {
const mask = Flags64(1) << 7
return (f&mask != 0)
}
// Set7 will set the flag bit value at index 7.
func (f Flags64) Set7() Flags64 {
const mask = Flags64(1) << 7
return f | mask
}
// Unset7 will unset the flag bit value at index 7.
func (f Flags64) Unset7() Flags64 {
const mask = Flags64(1) << 7
return f & ^mask
}
// Get8 will fetch the flag bit value at index 8.
func (f Flags64) Get8() bool {
const mask = Flags64(1) << 8
return (f&mask != 0)
}
// Set8 will set the flag bit value at index 8.
func (f Flags64) Set8() Flags64 {
const mask = Flags64(1) << 8
return f | mask
}
// Unset8 will unset the flag bit value at index 8.
func (f Flags64) Unset8() Flags64 {
const mask = Flags64(1) << 8
return f & ^mask
}
// Get9 will fetch the flag bit value at index 9.
func (f Flags64) Get9() bool {
const mask = Flags64(1) << 9
return (f&mask != 0)
}
// Set9 will set the flag bit value at index 9.
func (f Flags64) Set9() Flags64 {
const mask = Flags64(1) << 9
return f | mask
}
// Unset9 will unset the flag bit value at index 9.
func (f Flags64) Unset9() Flags64 {
const mask = Flags64(1) << 9
return f & ^mask
}
// Get10 will fetch the flag bit value at index 10.
func (f Flags64) Get10() bool {
const mask = Flags64(1) << 10
return (f&mask != 0)
}
// Set10 will set the flag bit value at index 10.
func (f Flags64) Set10() Flags64 {
const mask = Flags64(1) << 10
return f | mask
}
// Unset10 will unset the flag bit value at index 10.
func (f Flags64) Unset10() Flags64 {
const mask = Flags64(1) << 10
return f & ^mask
}
// Get11 will fetch the flag bit value at index 11.
func (f Flags64) Get11() bool {
const mask = Flags64(1) << 11
return (f&mask != 0)
}
// Set11 will set the flag bit value at index 11.
func (f Flags64) Set11() Flags64 {
const mask = Flags64(1) << 11
return f | mask
}
// Unset11 will unset the flag bit value at index 11.
func (f Flags64) Unset11() Flags64 {
const mask = Flags64(1) << 11
return f & ^mask
}
// Get12 will fetch the flag bit value at index 12.
func (f Flags64) Get12() bool {
const mask = Flags64(1) << 12
return (f&mask != 0)
}
// Set12 will set the flag bit value at index 12.
func (f Flags64) Set12() Flags64 {
const mask = Flags64(1) << 12
return f | mask
}
// Unset12 will unset the flag bit value at index 12.
func (f Flags64) Unset12() Flags64 {
const mask = Flags64(1) << 12
return f & ^mask
}
// Get13 will fetch the flag bit value at index 13.
func (f Flags64) Get13() bool {
const mask = Flags64(1) << 13
return (f&mask != 0)
}
// Set13 will set the flag bit value at index 13.
func (f Flags64) Set13() Flags64 {
const mask = Flags64(1) << 13
return f | mask
}
// Unset13 will unset the flag bit value at index 13.
func (f Flags64) Unset13() Flags64 {
const mask = Flags64(1) << 13
return f & ^mask
}
// Get14 will fetch the flag bit value at index 14.
func (f Flags64) Get14() bool {
const mask = Flags64(1) << 14
return (f&mask != 0)
}
// Set14 will set the flag bit value at index 14.
func (f Flags64) Set14() Flags64 {
const mask = Flags64(1) << 14
return f | mask
}
// Unset14 will unset the flag bit value at index 14.
func (f Flags64) Unset14() Flags64 {
const mask = Flags64(1) << 14
return f & ^mask
}
// Get15 will fetch the flag bit value at index 15.
func (f Flags64) Get15() bool {
const mask = Flags64(1) << 15
return (f&mask != 0)
}
// Set15 will set the flag bit value at index 15.
func (f Flags64) Set15() Flags64 {
const mask = Flags64(1) << 15
return f | mask
}
// Unset15 will unset the flag bit value at index 15.
func (f Flags64) Unset15() Flags64 {
const mask = Flags64(1) << 15
return f & ^mask
}
// Get16 will fetch the flag bit value at index 16.
func (f Flags64) Get16() bool {
const mask = Flags64(1) << 16
return (f&mask != 0)
}
// Set16 will set the flag bit value at index 16.
func (f Flags64) Set16() Flags64 {
const mask = Flags64(1) << 16
return f | mask
}
// Unset16 will unset the flag bit value at index 16.
func (f Flags64) Unset16() Flags64 {
const mask = Flags64(1) << 16
return f & ^mask
}
// Get17 will fetch the flag bit value at index 17.
func (f Flags64) Get17() bool {
const mask = Flags64(1) << 17
return (f&mask != 0)
}
// Set17 will set the flag bit value at index 17.
func (f Flags64) Set17() Flags64 {
const mask = Flags64(1) << 17
return f | mask
}
// Unset17 will unset the flag bit value at index 17.
func (f Flags64) Unset17() Flags64 {
const mask = Flags64(1) << 17
return f & ^mask
}
// Get18 will fetch the flag bit value at index 18.
func (f Flags64) Get18() bool {
const mask = Flags64(1) << 18
return (f&mask != 0)
}
// Set18 will set the flag bit value at index 18.
func (f Flags64) Set18() Flags64 {
const mask = Flags64(1) << 18
return f | mask
}
// Unset18 will unset the flag bit value at index 18.
func (f Flags64) Unset18() Flags64 {
const mask = Flags64(1) << 18
return f & ^mask
}
// Get19 will fetch the flag bit value at index 19.
func (f Flags64) Get19() bool {
const mask = Flags64(1) << 19
return (f&mask != 0)
}
// Set19 will set the flag bit value at index 19.
func (f Flags64) Set19() Flags64 {
const mask = Flags64(1) << 19
return f | mask
}
// Unset19 will unset the flag bit value at index 19.
func (f Flags64) Unset19() Flags64 {
const mask = Flags64(1) << 19
return f & ^mask
}
// Get20 will fetch the flag bit value at index 20.
func (f Flags64) Get20() bool {
const mask = Flags64(1) << 20
return (f&mask != 0)
}
// Set20 will set the flag bit value at index 20.
func (f Flags64) Set20() Flags64 {
const mask = Flags64(1) << 20
return f | mask
}
// Unset20 will unset the flag bit value at index 20.
func (f Flags64) Unset20() Flags64 {
const mask = Flags64(1) << 20
return f & ^mask
}
// Get21 will fetch the flag bit value at index 21.
func (f Flags64) Get21() bool {
const mask = Flags64(1) << 21
return (f&mask != 0)
}
// Set21 will set the flag bit value at index 21.
func (f Flags64) Set21() Flags64 {
const mask = Flags64(1) << 21
return f | mask
}
// Unset21 will unset the flag bit value at index 21.
func (f Flags64) Unset21() Flags64 {
const mask = Flags64(1) << 21
return f & ^mask
}
// Get22 will fetch the flag bit value at index 22.
func (f Flags64) Get22() bool {
const mask = Flags64(1) << 22
return (f&mask != 0)
}
// Set22 will set the flag bit value at index 22.
func (f Flags64) Set22() Flags64 {
const mask = Flags64(1) << 22
return f | mask
}
// Unset22 will unset the flag bit value at index 22.
func (f Flags64) Unset22() Flags64 {
const mask = Flags64(1) << 22
return f & ^mask
}
// Get23 will fetch the flag bit value at index 23.
func (f Flags64) Get23() bool {
const mask = Flags64(1) << 23
return (f&mask != 0)
}
// Set23 will set the flag bit value at index 23.
func (f Flags64) Set23() Flags64 {
const mask = Flags64(1) << 23
return f | mask
}
// Unset23 will unset the flag bit value at index 23.
func (f Flags64) Unset23() Flags64 {
const mask = Flags64(1) << 23
return f & ^mask
}
// Get24 will fetch the flag bit value at index 24.
func (f Flags64) Get24() bool {
const mask = Flags64(1) << 24
return (f&mask != 0)
}
// Set24 will set the flag bit value at index 24.
func (f Flags64) Set24() Flags64 {
const mask = Flags64(1) << 24
return f | mask
}
// Unset24 will unset the flag bit value at index 24.
func (f Flags64) Unset24() Flags64 {
const mask = Flags64(1) << 24
return f & ^mask
}
// Get25 will fetch the flag bit value at index 25.
func (f Flags64) Get25() bool {
const mask = Flags64(1) << 25
return (f&mask != 0)
}
// Set25 will set the flag bit value at index 25.
func (f Flags64) Set25() Flags64 {
const mask = Flags64(1) << 25
return f | mask
}
// Unset25 will unset the flag bit value at index 25.
func (f Flags64) Unset25() Flags64 {
const mask = Flags64(1) << 25
return f & ^mask
}
// Get26 will fetch the flag bit value at index 26.
func (f Flags64) Get26() bool {
const mask = Flags64(1) << 26
return (f&mask != 0)
}
// Set26 will set the flag bit value at index 26.
func (f Flags64) Set26() Flags64 {
const mask = Flags64(1) << 26
return f | mask
}
// Unset26 will unset the flag bit value at index 26.
func (f Flags64) Unset26() Flags64 {
const mask = Flags64(1) << 26
return f & ^mask
}
// Get27 will fetch the flag bit value at index 27.
func (f Flags64) Get27() bool {
const mask = Flags64(1) << 27
return (f&mask != 0)
}
// Set27 will set the flag bit value at index 27.
func (f Flags64) Set27() Flags64 {
const mask = Flags64(1) << 27
return f | mask
}
// Unset27 will unset the flag bit value at index 27.
func (f Flags64) Unset27() Flags64 {
const mask = Flags64(1) << 27
return f & ^mask
}
// Get28 will fetch the flag bit value at index 28.
func (f Flags64) Get28() bool {
const mask = Flags64(1) << 28
return (f&mask != 0)
}
// Set28 will set the flag bit value at index 28.
func (f Flags64) Set28() Flags64 {
const mask = Flags64(1) << 28
return f | mask
}
// Unset28 will unset the flag bit value at index 28.
func (f Flags64) Unset28() Flags64 {
const mask = Flags64(1) << 28
return f & ^mask
}
// Get29 will fetch the flag bit value at index 29.
func (f Flags64) Get29() bool {
const mask = Flags64(1) << 29
return (f&mask != 0)
}
// Set29 will set the flag bit value at index 29.
func (f Flags64) Set29() Flags64 {
const mask = Flags64(1) << 29
return f | mask
}
// Unset29 will unset the flag bit value at index 29.
func (f Flags64) Unset29() Flags64 {
const mask = Flags64(1) << 29
return f & ^mask
}
// Get30 will fetch the flag bit value at index 30.
func (f Flags64) Get30() bool {
const mask = Flags64(1) << 30
return (f&mask != 0)
}
// Set30 will set the flag bit value at index 30.
func (f Flags64) Set30() Flags64 {
const mask = Flags64(1) << 30
return f | mask
}
// Unset30 will unset the flag bit value at index 30.
func (f Flags64) Unset30() Flags64 {
const mask = Flags64(1) << 30
return f & ^mask
}
// Get31 will fetch the flag bit value at index 31.
func (f Flags64) Get31() bool {
const mask = Flags64(1) << 31
return (f&mask != 0)
}
// Set31 will set the flag bit value at index 31.
func (f Flags64) Set31() Flags64 {
const mask = Flags64(1) << 31
return f | mask
}
// Unset31 will unset the flag bit value at index 31.
func (f Flags64) Unset31() Flags64 {
const mask = Flags64(1) << 31
return f & ^mask
}
// Get32 will fetch the flag bit value at index 32.
func (f Flags64) Get32() bool {
const mask = Flags64(1) << 32
return (f&mask != 0)
}
// Set32 will set the flag bit value at index 32.
func (f Flags64) Set32() Flags64 {
const mask = Flags64(1) << 32
return f | mask
}
// Unset32 will unset the flag bit value at index 32.
func (f Flags64) Unset32() Flags64 {
const mask = Flags64(1) << 32
return f & ^mask
}
// Get33 will fetch the flag bit value at index 33.
func (f Flags64) Get33() bool {
const mask = Flags64(1) << 33
return (f&mask != 0)
}
// Set33 will set the flag bit value at index 33.
func (f Flags64) Set33() Flags64 {
const mask = Flags64(1) << 33
return f | mask
}
// Unset33 will unset the flag bit value at index 33.
func (f Flags64) Unset33() Flags64 {
const mask = Flags64(1) << 33
return f & ^mask
}
// Get34 will fetch the flag bit value at index 34.
func (f Flags64) Get34() bool {
const mask = Flags64(1) << 34
return (f&mask != 0)
}
// Set34 will set the flag bit value at index 34.
func (f Flags64) Set34() Flags64 {
const mask = Flags64(1) << 34
return f | mask
}
// Unset34 will unset the flag bit value at index 34.
func (f Flags64) Unset34() Flags64 {
const mask = Flags64(1) << 34
return f & ^mask
}
// Get35 will fetch the flag bit value at index 35.
func (f Flags64) Get35() bool {
const mask = Flags64(1) << 35
return (f&mask != 0)
}
// Set35 will set the flag bit value at index 35.
func (f Flags64) Set35() Flags64 {
const mask = Flags64(1) << 35
return f | mask
}
// Unset35 will unset the flag bit value at index 35.
func (f Flags64) Unset35() Flags64 {
const mask = Flags64(1) << 35
return f & ^mask
}
// Get36 will fetch the flag bit value at index 36.
func (f Flags64) Get36() bool {
const mask = Flags64(1) << 36
return (f&mask != 0)
}
// Set36 will set the flag bit value at index 36.
func (f Flags64) Set36() Flags64 {
const mask = Flags64(1) << 36
return f | mask
}
// Unset36 will unset the flag bit value at index 36.
func (f Flags64) Unset36() Flags64 {
const mask = Flags64(1) << 36
return f & ^mask
}
// Get37 will fetch the flag bit value at index 37.
func (f Flags64) Get37() bool {
const mask = Flags64(1) << 37
return (f&mask != 0)
}
// Set37 will set the flag bit value at index 37.
func (f Flags64) Set37() Flags64 {
const mask = Flags64(1) << 37
return f | mask
}
// Unset37 will unset the flag bit value at index 37.
func (f Flags64) Unset37() Flags64 {
const mask = Flags64(1) << 37
return f & ^mask
}
// Get38 will fetch the flag bit value at index 38.
func (f Flags64) Get38() bool {
const mask = Flags64(1) << 38
return (f&mask != 0)
}
// Set38 will set the flag bit value at index 38.
func (f Flags64) Set38() Flags64 {
const mask = Flags64(1) << 38
return f | mask
}
// Unset38 will unset the flag bit value at index 38.
func (f Flags64) Unset38() Flags64 {
const mask = Flags64(1) << 38
return f & ^mask
}
// Get39 will fetch the flag bit value at index 39.
func (f Flags64) Get39() bool {
const mask = Flags64(1) << 39
return (f&mask != 0)
}
// Set39 will set the flag bit value at index 39.
func (f Flags64) Set39() Flags64 {
const mask = Flags64(1) << 39
return f | mask
}
// Unset39 will unset the flag bit value at index 39.
func (f Flags64) Unset39() Flags64 {
const mask = Flags64(1) << 39
return f & ^mask
}
// Get40 will fetch the flag bit value at index 40.
func (f Flags64) Get40() bool {
const mask = Flags64(1) << 40
return (f&mask != 0)
}
// Set40 will set the flag bit value at index 40.
func (f Flags64) Set40() Flags64 {
const mask = Flags64(1) << 40
return f | mask
}
// Unset40 will unset the flag bit value at index 40.
func (f Flags64) Unset40() Flags64 {
const mask = Flags64(1) << 40
return f & ^mask
}
// Get41 will fetch the flag bit value at index 41.
func (f Flags64) Get41() bool {
const mask = Flags64(1) << 41
return (f&mask != 0)
}
// Set41 will set the flag bit value at index 41.
func (f Flags64) Set41() Flags64 {
const mask = Flags64(1) << 41
return f | mask
}
// Unset41 will unset the flag bit value at index 41.
func (f Flags64) Unset41() Flags64 {
const mask = Flags64(1) << 41
return f & ^mask
}
// Get42 will fetch the flag bit value at index 42.
func (f Flags64) Get42() bool {
const mask = Flags64(1) << 42
return (f&mask != 0)
}
// Set42 will set the flag bit value at index 42.
func (f Flags64) Set42() Flags64 {
const mask = Flags64(1) << 42
return f | mask
}
// Unset42 will unset the flag bit value at index 42.
func (f Flags64) Unset42() Flags64 {
const mask = Flags64(1) << 42
return f & ^mask
}
// Get43 will fetch the flag bit value at index 43.
func (f Flags64) Get43() bool {
const mask = Flags64(1) << 43
return (f&mask != 0)
}
// Set43 will set the flag bit value at index 43.
func (f Flags64) Set43() Flags64 {
const mask = Flags64(1) << 43
return f | mask
}
// Unset43 will unset the flag bit value at index 43.
func (f Flags64) Unset43() Flags64 {
const mask = Flags64(1) << 43
return f & ^mask
}
// Get44 will fetch the flag bit value at index 44.
func (f Flags64) Get44() bool {
const mask = Flags64(1) << 44
return (f&mask != 0)
}
// Set44 will set the flag bit value at index 44.
func (f Flags64) Set44() Flags64 {
const mask = Flags64(1) << 44
return f | mask
}
// Unset44 will unset the flag bit value at index 44.
func (f Flags64) Unset44() Flags64 {
const mask = Flags64(1) << 44
return f & ^mask
}
// Get45 will fetch the flag bit value at index 45.
func (f Flags64) Get45() bool {
const mask = Flags64(1) << 45
return (f&mask != 0)
}
// Set45 will set the flag bit value at index 45.
func (f Flags64) Set45() Flags64 {
const mask = Flags64(1) << 45
return f | mask
}
// Unset45 will unset the flag bit value at index 45.
func (f Flags64) Unset45() Flags64 {
const mask = Flags64(1) << 45
return f & ^mask
}
// Get46 will fetch the flag bit value at index 46.
func (f Flags64) Get46() bool {
const mask = Flags64(1) << 46
return (f&mask != 0)
}
// Set46 will set the flag bit value at index 46.
func (f Flags64) Set46() Flags64 {
const mask = Flags64(1) << 46
return f | mask
}
// Unset46 will unset the flag bit value at index 46.
func (f Flags64) Unset46() Flags64 {
const mask = Flags64(1) << 46
return f & ^mask
}
// Get47 will fetch the flag bit value at index 47.
func (f Flags64) Get47() bool {
const mask = Flags64(1) << 47
return (f&mask != 0)
}
// Set47 will set the flag bit value at index 47.
func (f Flags64) Set47() Flags64 {
const mask = Flags64(1) << 47
return f | mask
}
// Unset47 will unset the flag bit value at index 47.
func (f Flags64) Unset47() Flags64 {
const mask = Flags64(1) << 47
return f & ^mask
}
// Get48 will fetch the flag bit value at index 48.
func (f Flags64) Get48() bool {
const mask = Flags64(1) << 48
return (f&mask != 0)
}
// Set48 will set the flag bit value at index 48.
func (f Flags64) Set48() Flags64 {
const mask = Flags64(1) << 48
return f | mask
}
// Unset48 will unset the flag bit value at index 48.
func (f Flags64) Unset48() Flags64 {
const mask = Flags64(1) << 48
return f & ^mask
}
// Get49 will fetch the flag bit value at index 49.
func (f Flags64) Get49() bool {
const mask = Flags64(1) << 49
return (f&mask != 0)
}
// Set49 will set the flag bit value at index 49.
func (f Flags64) Set49() Flags64 {
const mask = Flags64(1) << 49
return f | mask
}
// Unset49 will unset the flag bit value at index 49.
func (f Flags64) Unset49() Flags64 {
const mask = Flags64(1) << 49
return f & ^mask
}
// Get50 will fetch the flag bit value at index 50.
func (f Flags64) Get50() bool {
const mask = Flags64(1) << 50
return (f&mask != 0)
}
// Set50 will set the flag bit value at index 50.
func (f Flags64) Set50() Flags64 {
const mask = Flags64(1) << 50
return f | mask
}
// Unset50 will unset the flag bit value at index 50.
func (f Flags64) Unset50() Flags64 {
const mask = Flags64(1) << 50
return f & ^mask
}
// Get51 will fetch the flag bit value at index 51.
func (f Flags64) Get51() bool {
const mask = Flags64(1) << 51
return (f&mask != 0)
}
// Set51 will set the flag bit value at index 51.
func (f Flags64) Set51() Flags64 {
const mask = Flags64(1) << 51
return f | mask
}
// Unset51 will unset the flag bit value at index 51.
func (f Flags64) Unset51() Flags64 {
const mask = Flags64(1) << 51
return f & ^mask
}
// Get52 will fetch the flag bit value at index 52.
func (f Flags64) Get52() bool {
const mask = Flags64(1) << 52
return (f&mask != 0)
}
// Set52 will set the flag bit value at index 52.
func (f Flags64) Set52() Flags64 {
const mask = Flags64(1) << 52
return f | mask
}
// Unset52 will unset the flag bit value at index 52.
func (f Flags64) Unset52() Flags64 {
const mask = Flags64(1) << 52
return f & ^mask
}
// Get53 will fetch the flag bit value at index 53.
func (f Flags64) Get53() bool {
const mask = Flags64(1) << 53
return (f&mask != 0)
}
// Set53 will set the flag bit value at index 53.
func (f Flags64) Set53() Flags64 {
const mask = Flags64(1) << 53
return f | mask
}
// Unset53 will unset the flag bit value at index 53.
func (f Flags64) Unset53() Flags64 {
const mask = Flags64(1) << 53
return f & ^mask
}
// Get54 will fetch the flag bit value at index 54.
func (f Flags64) Get54() bool {
const mask = Flags64(1) << 54
return (f&mask != 0)
}
// Set54 will set the flag bit value at index 54.
func (f Flags64) Set54() Flags64 {
const mask = Flags64(1) << 54
return f | mask
}
// Unset54 will unset the flag bit value at index 54.
func (f Flags64) Unset54() Flags64 {
const mask = Flags64(1) << 54
return f & ^mask
}
// Get55 will fetch the flag bit value at index 55.
func (f Flags64) Get55() bool {
const mask = Flags64(1) << 55
return (f&mask != 0)
}
// Set55 will set the flag bit value at index 55.
func (f Flags64) Set55() Flags64 {
const mask = Flags64(1) << 55
return f | mask
}
// Unset55 will unset the flag bit value at index 55.
func (f Flags64) Unset55() Flags64 {
const mask = Flags64(1) << 55
return f & ^mask
}
// Get56 will fetch the flag bit value at index 56.
func (f Flags64) Get56() bool {
const mask = Flags64(1) << 56
return (f&mask != 0)
}
// Set56 will set the flag bit value at index 56.
func (f Flags64) Set56() Flags64 {
const mask = Flags64(1) << 56
return f | mask
}
// Unset56 will unset the flag bit value at index 56.
func (f Flags64) Unset56() Flags64 {
const mask = Flags64(1) << 56
return f & ^mask
}
// Get57 will fetch the flag bit value at index 57.
func (f Flags64) Get57() bool {
const mask = Flags64(1) << 57
return (f&mask != 0)
}
// Set57 will set the flag bit value at index 57.
func (f Flags64) Set57() Flags64 {
const mask = Flags64(1) << 57
return f | mask
}
// Unset57 will unset the flag bit value at index 57.
func (f Flags64) Unset57() Flags64 {
const mask = Flags64(1) << 57
return f & ^mask
}
// Get58 will fetch the flag bit value at index 58.
func (f Flags64) Get58() bool {
const mask = Flags64(1) << 58
return (f&mask != 0)
}
// Set58 will set the flag bit value at index 58.
func (f Flags64) Set58() Flags64 {
const mask = Flags64(1) << 58
return f | mask
}
// Unset58 will unset the flag bit value at index 58.
func (f Flags64) Unset58() Flags64 {
const mask = Flags64(1) << 58
return f & ^mask
}
// Get59 will fetch the flag bit value at index 59.
func (f Flags64) Get59() bool {
const mask = Flags64(1) << 59
return (f&mask != 0)
}
// Set59 will set the flag bit value at index 59.
func (f Flags64) Set59() Flags64 {
const mask = Flags64(1) << 59
return f | mask
}
// Unset59 will unset the flag bit value at index 59.
func (f Flags64) Unset59() Flags64 {
const mask = Flags64(1) << 59
return f & ^mask
}
// Get60 will fetch the flag bit value at index 60.
func (f Flags64) Get60() bool {
const mask = Flags64(1) << 60
return (f&mask != 0)
}
// Set60 will set the flag bit value at index 60.
func (f Flags64) Set60() Flags64 {
const mask = Flags64(1) << 60
return f | mask
}
// Unset60 will unset the flag bit value at index 60.
func (f Flags64) Unset60() Flags64 {
const mask = Flags64(1) << 60
return f & ^mask
}
// Get61 will fetch the flag bit value at index 61.
func (f Flags64) Get61() bool {
const mask = Flags64(1) << 61
return (f&mask != 0)
}
// Set61 will set the flag bit value at index 61.
func (f Flags64) Set61() Flags64 {
const mask = Flags64(1) << 61
return f | mask
}
// Unset61 will unset the flag bit value at index 61.
func (f Flags64) Unset61() Flags64 {
const mask = Flags64(1) << 61
return f & ^mask
}
// Get62 will fetch the flag bit value at index 62.
func (f Flags64) Get62() bool {
const mask = Flags64(1) << 62
return (f&mask != 0)
}
// Set62 will set the flag bit value at index 62.
func (f Flags64) Set62() Flags64 {
const mask = Flags64(1) << 62
return f | mask
}
// Unset62 will unset the flag bit value at index 62.
func (f Flags64) Unset62() Flags64 {
const mask = Flags64(1) << 62
return f & ^mask
}
// Get63 will fetch the flag bit value at index 63.
func (f Flags64) Get63() bool {
const mask = Flags64(1) << 63
return (f&mask != 0)
}
// Set63 will set the flag bit value at index 63.
func (f Flags64) Set63() Flags64 {
const mask = Flags64(1) << 63
return f | mask
}
// Unset63 will unset the flag bit value at index 63.
func (f Flags64) Unset63() Flags64 {
const mask = Flags64(1) << 63
return f & ^mask
}
// String returns a human readable representation of Flags64.
func (f Flags64) String() string {
var val bool
[chore] consolidate caching libraries (#704) * add miekg/dns dependency * set/validate accountDomain * move finger to dereferencer * totally break GetRemoteAccount * start reworking finger func a bit * start reworking getRemoteAccount a bit * move mention parts to namestring * rework webfingerget * use util function to extract webfinger parts * use accountDomain * rework finger again, final form * just a real nasty commit, the worst * remove refresh from account * use new ASRepToAccount signature * fix incorrect debug call * fix for new getRemoteAccount * rework GetRemoteAccount * start updating tests to remove repetition * break a lot of tests Move shared test logic into the testrig, rather than having it scattered all over the place. This allows us to just mock the transport controller once, and have all tests use it (unless they need not to for some other reason). * fix up tests to use main mock httpclient * webfinger only if necessary * cheeky linting with the lads * update mentionName regex recognize instance accounts * don't finger instance accounts * test webfinger part extraction * increase default worker count to 4 per cpu * don't repeat regex parsing * final search for discovered accountDomain * be more permissive in namestring lookup * add more extraction tests * simplify GetParseMentionFunc * skip long search if local account * fix broken test * consolidate to all use same caching libraries Signed-off-by: kim <grufwub@gmail.com> * perform more caching in the database layer Signed-off-by: kim <grufwub@gmail.com> * remove ASNote cache Signed-off-by: kim <grufwub@gmail.com> * update cache library, improve db tracing hooks Signed-off-by: kim <grufwub@gmail.com> * return ErrNoEntries if no account status IDs found, small formatting changes Signed-off-by: kim <grufwub@gmail.com> * fix tests, thanks tobi! Signed-off-by: kim <grufwub@gmail.com> Co-authored-by: tsmethurst <tobi.smethurst@protonmail.com>
2022-07-10 16:18:21 +01:00
var buf byteutil.Buffer
buf.WriteByte('{')
val = f.Get0()
buf.WriteString(bool2str(val) + " ")
val = f.Get1()
buf.WriteString(bool2str(val) + " ")
val = f.Get2()
buf.WriteString(bool2str(val) + " ")
val = f.Get3()
buf.WriteString(bool2str(val) + " ")
val = f.Get4()
buf.WriteString(bool2str(val) + " ")
val = f.Get5()
buf.WriteString(bool2str(val) + " ")
val = f.Get6()
buf.WriteString(bool2str(val) + " ")
val = f.Get7()
buf.WriteString(bool2str(val) + " ")
val = f.Get8()
buf.WriteString(bool2str(val) + " ")
val = f.Get9()
buf.WriteString(bool2str(val) + " ")
val = f.Get10()
buf.WriteString(bool2str(val) + " ")
val = f.Get11()
buf.WriteString(bool2str(val) + " ")
val = f.Get12()
buf.WriteString(bool2str(val) + " ")
val = f.Get13()
buf.WriteString(bool2str(val) + " ")
val = f.Get14()
buf.WriteString(bool2str(val) + " ")
val = f.Get15()
buf.WriteString(bool2str(val) + " ")
val = f.Get16()
buf.WriteString(bool2str(val) + " ")
val = f.Get17()
buf.WriteString(bool2str(val) + " ")
val = f.Get18()
buf.WriteString(bool2str(val) + " ")
val = f.Get19()
buf.WriteString(bool2str(val) + " ")
val = f.Get20()
buf.WriteString(bool2str(val) + " ")
val = f.Get21()
buf.WriteString(bool2str(val) + " ")
val = f.Get22()
buf.WriteString(bool2str(val) + " ")
val = f.Get23()
buf.WriteString(bool2str(val) + " ")
val = f.Get24()
buf.WriteString(bool2str(val) + " ")
val = f.Get25()
buf.WriteString(bool2str(val) + " ")
val = f.Get26()
buf.WriteString(bool2str(val) + " ")
val = f.Get27()
buf.WriteString(bool2str(val) + " ")
val = f.Get28()
buf.WriteString(bool2str(val) + " ")
val = f.Get29()
buf.WriteString(bool2str(val) + " ")
val = f.Get30()
buf.WriteString(bool2str(val) + " ")
val = f.Get31()
buf.WriteString(bool2str(val) + " ")
val = f.Get32()
buf.WriteString(bool2str(val) + " ")
val = f.Get33()
buf.WriteString(bool2str(val) + " ")
val = f.Get34()
buf.WriteString(bool2str(val) + " ")
val = f.Get35()
buf.WriteString(bool2str(val) + " ")
val = f.Get36()
buf.WriteString(bool2str(val) + " ")
val = f.Get37()
buf.WriteString(bool2str(val) + " ")
val = f.Get38()
buf.WriteString(bool2str(val) + " ")
val = f.Get39()
buf.WriteString(bool2str(val) + " ")
val = f.Get40()
buf.WriteString(bool2str(val) + " ")
val = f.Get41()
buf.WriteString(bool2str(val) + " ")
val = f.Get42()
buf.WriteString(bool2str(val) + " ")
val = f.Get43()
buf.WriteString(bool2str(val) + " ")
val = f.Get44()
buf.WriteString(bool2str(val) + " ")
val = f.Get45()
buf.WriteString(bool2str(val) + " ")
val = f.Get46()
buf.WriteString(bool2str(val) + " ")
val = f.Get47()
buf.WriteString(bool2str(val) + " ")
val = f.Get48()
buf.WriteString(bool2str(val) + " ")
val = f.Get49()
buf.WriteString(bool2str(val) + " ")
val = f.Get50()
buf.WriteString(bool2str(val) + " ")
val = f.Get51()
buf.WriteString(bool2str(val) + " ")
val = f.Get52()
buf.WriteString(bool2str(val) + " ")
val = f.Get53()
buf.WriteString(bool2str(val) + " ")
val = f.Get54()
buf.WriteString(bool2str(val) + " ")
val = f.Get55()
buf.WriteString(bool2str(val) + " ")
val = f.Get56()
buf.WriteString(bool2str(val) + " ")
val = f.Get57()
buf.WriteString(bool2str(val) + " ")
val = f.Get58()
buf.WriteString(bool2str(val) + " ")
val = f.Get59()
buf.WriteString(bool2str(val) + " ")
val = f.Get60()
buf.WriteString(bool2str(val) + " ")
val = f.Get61()
buf.WriteString(bool2str(val) + " ")
val = f.Get62()
buf.WriteString(bool2str(val) + " ")
val = f.Get63()
buf.WriteString(bool2str(val) + " ")
buf.Truncate(1)
buf.WriteByte('}')
return buf.String()
}
// GoString returns a more verbose human readable representation of Flags64.
func (f Flags64) GoString() string {
var val bool
[chore] consolidate caching libraries (#704) * add miekg/dns dependency * set/validate accountDomain * move finger to dereferencer * totally break GetRemoteAccount * start reworking finger func a bit * start reworking getRemoteAccount a bit * move mention parts to namestring * rework webfingerget * use util function to extract webfinger parts * use accountDomain * rework finger again, final form * just a real nasty commit, the worst * remove refresh from account * use new ASRepToAccount signature * fix incorrect debug call * fix for new getRemoteAccount * rework GetRemoteAccount * start updating tests to remove repetition * break a lot of tests Move shared test logic into the testrig, rather than having it scattered all over the place. This allows us to just mock the transport controller once, and have all tests use it (unless they need not to for some other reason). * fix up tests to use main mock httpclient * webfinger only if necessary * cheeky linting with the lads * update mentionName regex recognize instance accounts * don't finger instance accounts * test webfinger part extraction * increase default worker count to 4 per cpu * don't repeat regex parsing * final search for discovered accountDomain * be more permissive in namestring lookup * add more extraction tests * simplify GetParseMentionFunc * skip long search if local account * fix broken test * consolidate to all use same caching libraries Signed-off-by: kim <grufwub@gmail.com> * perform more caching in the database layer Signed-off-by: kim <grufwub@gmail.com> * remove ASNote cache Signed-off-by: kim <grufwub@gmail.com> * update cache library, improve db tracing hooks Signed-off-by: kim <grufwub@gmail.com> * return ErrNoEntries if no account status IDs found, small formatting changes Signed-off-by: kim <grufwub@gmail.com> * fix tests, thanks tobi! Signed-off-by: kim <grufwub@gmail.com> Co-authored-by: tsmethurst <tobi.smethurst@protonmail.com>
2022-07-10 16:18:21 +01:00
var buf byteutil.Buffer
buf.WriteString("bitutil.Flags64{")
val = f.Get0()
buf.WriteString("0=" + bool2str(val) + " ")
val = f.Get1()
buf.WriteString("1=" + bool2str(val) + " ")
val = f.Get2()
buf.WriteString("2=" + bool2str(val) + " ")
val = f.Get3()
buf.WriteString("3=" + bool2str(val) + " ")
val = f.Get4()
buf.WriteString("4=" + bool2str(val) + " ")
val = f.Get5()
buf.WriteString("5=" + bool2str(val) + " ")
val = f.Get6()
buf.WriteString("6=" + bool2str(val) + " ")
val = f.Get7()
buf.WriteString("7=" + bool2str(val) + " ")
val = f.Get8()
buf.WriteString("8=" + bool2str(val) + " ")
val = f.Get9()
buf.WriteString("9=" + bool2str(val) + " ")
val = f.Get10()
buf.WriteString("10=" + bool2str(val) + " ")
val = f.Get11()
buf.WriteString("11=" + bool2str(val) + " ")
val = f.Get12()
buf.WriteString("12=" + bool2str(val) + " ")
val = f.Get13()
buf.WriteString("13=" + bool2str(val) + " ")
val = f.Get14()
buf.WriteString("14=" + bool2str(val) + " ")
val = f.Get15()
buf.WriteString("15=" + bool2str(val) + " ")
val = f.Get16()
buf.WriteString("16=" + bool2str(val) + " ")
val = f.Get17()
buf.WriteString("17=" + bool2str(val) + " ")
val = f.Get18()
buf.WriteString("18=" + bool2str(val) + " ")
val = f.Get19()
buf.WriteString("19=" + bool2str(val) + " ")
val = f.Get20()
buf.WriteString("20=" + bool2str(val) + " ")
val = f.Get21()
buf.WriteString("21=" + bool2str(val) + " ")
val = f.Get22()
buf.WriteString("22=" + bool2str(val) + " ")
val = f.Get23()
buf.WriteString("23=" + bool2str(val) + " ")
val = f.Get24()
buf.WriteString("24=" + bool2str(val) + " ")
val = f.Get25()
buf.WriteString("25=" + bool2str(val) + " ")
val = f.Get26()
buf.WriteString("26=" + bool2str(val) + " ")
val = f.Get27()
buf.WriteString("27=" + bool2str(val) + " ")
val = f.Get28()
buf.WriteString("28=" + bool2str(val) + " ")
val = f.Get29()
buf.WriteString("29=" + bool2str(val) + " ")
val = f.Get30()
buf.WriteString("30=" + bool2str(val) + " ")
val = f.Get31()
buf.WriteString("31=" + bool2str(val) + " ")
val = f.Get32()
buf.WriteString("32=" + bool2str(val) + " ")
val = f.Get33()
buf.WriteString("33=" + bool2str(val) + " ")
val = f.Get34()
buf.WriteString("34=" + bool2str(val) + " ")
val = f.Get35()
buf.WriteString("35=" + bool2str(val) + " ")
val = f.Get36()
buf.WriteString("36=" + bool2str(val) + " ")
val = f.Get37()
buf.WriteString("37=" + bool2str(val) + " ")
val = f.Get38()
buf.WriteString("38=" + bool2str(val) + " ")
val = f.Get39()
buf.WriteString("39=" + bool2str(val) + " ")
val = f.Get40()
buf.WriteString("40=" + bool2str(val) + " ")
val = f.Get41()
buf.WriteString("41=" + bool2str(val) + " ")
val = f.Get42()
buf.WriteString("42=" + bool2str(val) + " ")
val = f.Get43()
buf.WriteString("43=" + bool2str(val) + " ")
val = f.Get44()
buf.WriteString("44=" + bool2str(val) + " ")
val = f.Get45()
buf.WriteString("45=" + bool2str(val) + " ")
val = f.Get46()
buf.WriteString("46=" + bool2str(val) + " ")
val = f.Get47()
buf.WriteString("47=" + bool2str(val) + " ")
val = f.Get48()
buf.WriteString("48=" + bool2str(val) + " ")
val = f.Get49()
buf.WriteString("49=" + bool2str(val) + " ")
val = f.Get50()
buf.WriteString("50=" + bool2str(val) + " ")
val = f.Get51()
buf.WriteString("51=" + bool2str(val) + " ")
val = f.Get52()
buf.WriteString("52=" + bool2str(val) + " ")
val = f.Get53()
buf.WriteString("53=" + bool2str(val) + " ")
val = f.Get54()
buf.WriteString("54=" + bool2str(val) + " ")
val = f.Get55()
buf.WriteString("55=" + bool2str(val) + " ")
val = f.Get56()
buf.WriteString("56=" + bool2str(val) + " ")
val = f.Get57()
buf.WriteString("57=" + bool2str(val) + " ")
val = f.Get58()
buf.WriteString("58=" + bool2str(val) + " ")
val = f.Get59()
buf.WriteString("59=" + bool2str(val) + " ")
val = f.Get60()
buf.WriteString("60=" + bool2str(val) + " ")
val = f.Get61()
buf.WriteString("61=" + bool2str(val) + " ")
val = f.Get62()
buf.WriteString("62=" + bool2str(val) + " ")
val = f.Get63()
buf.WriteString("63=" + bool2str(val) + " ")
buf.Truncate(1)
buf.WriteByte('}')
return buf.String()
}
func bool2str(b bool) string {
if b {
return "true"
}
return "false"
}