You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
98 lines
1.8 KiB
Go
98 lines
1.8 KiB
Go
package gtid
|
|
|
|
import (
|
|
"strings"
|
|
)
|
|
|
|
func Add(gtidDesc0, gtidDesc1 string) (string, error) {
|
|
gtid, err := Parse(gtidDesc0 + "," + gtidDesc1)
|
|
if nil != err {
|
|
return "", err
|
|
}
|
|
return gtid.String(), nil
|
|
}
|
|
|
|
func Sub(gtidDesc0, gtidDesc1 string) (string, error) {
|
|
if strings.TrimSpace(gtidDesc0) == "" {
|
|
return "", nil
|
|
}
|
|
gtid, err := parse(gtidDesc0)
|
|
if err != nil {
|
|
return "", err
|
|
}
|
|
if strings.TrimSpace(gtidDesc1) == "" {
|
|
return gtid.String(), nil
|
|
}
|
|
err = gtid.sub(gtidDesc1)
|
|
if err != nil {
|
|
return "", err
|
|
}
|
|
return gtid.String(), nil
|
|
}
|
|
|
|
func Contain(gtidDesc0, gtidDesc1 string) (bool, error) {
|
|
if strings.TrimSpace(gtidDesc0) == "" {
|
|
if strings.TrimSpace(gtidDesc1) == "" {
|
|
return true, nil
|
|
}
|
|
return false, nil
|
|
}
|
|
gtid, err := parse(gtidDesc0)
|
|
if err != nil {
|
|
return false, err
|
|
}
|
|
return gtid.Contain(gtidDesc1)
|
|
}
|
|
|
|
func Overlap(gtidDesc0, gtidDesc1 string) (bool, error) {
|
|
if strings.TrimSpace(gtidDesc0) == "" {
|
|
if strings.TrimSpace(gtidDesc1) == "" {
|
|
return true, nil
|
|
}
|
|
return false, nil
|
|
}
|
|
gtid, err := parse(gtidDesc0)
|
|
if err != nil {
|
|
return false, err
|
|
}
|
|
return gtid.Overlap(gtidDesc1)
|
|
}
|
|
|
|
func Equal(gtidDesc0, gtidDesc1 string) (bool, error) {
|
|
if strings.TrimSpace(gtidDesc0) == "" {
|
|
if strings.TrimSpace(gtidDesc1) == "" {
|
|
return true, nil
|
|
}
|
|
return false, nil
|
|
}
|
|
gtid, err := parse(gtidDesc0)
|
|
if err != nil {
|
|
return false, err
|
|
}
|
|
return gtid.Equal(gtidDesc1)
|
|
}
|
|
|
|
func EventCount(gtidDesc string) (uint64, error) {
|
|
gtid, err := Parse(gtidDesc)
|
|
if err != nil {
|
|
return 0, err
|
|
}
|
|
return gtid.EventCount(), nil
|
|
}
|
|
|
|
func EventList(gtidDesc string) ([]string, error) {
|
|
gtid, err := Parse(gtidDesc)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return gtid.EventList(), nil
|
|
}
|
|
|
|
func Uniform(gtidDesc string) (string, error) {
|
|
gtid, err := Parse(gtidDesc)
|
|
if err != nil {
|
|
return gtidDesc, err
|
|
}
|
|
return gtid.String(), nil
|
|
}
|