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

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
}