package version import ( "strings" ) type Constraint struct { operator string version string } // Return a new Constrain and sets operator and version to compare func NewConstrain(operator, version string) *Constraint { constraint := new(Constraint) constraint.SetOperator(operator) constraint.SetVersion(version) return constraint } // Sets operator to compare func (self *Constraint) SetOperator(operator string) { self.operator = operator } // Get operator to compare func (self *Constraint) GetOperator() string { return self.operator } // Sets version to compare func (self *Constraint) SetVersion(version string) { self.version = version } // Get version to compare func (self *Constraint) GetVersion() string { return self.version } // Match a given version againts the constraint func (self *Constraint) Match(version string) bool { return Compare(version, self.version, self.operator) } // Return a string representation func (self *Constraint) String() string { return strings.Trim(self.operator+" "+self.version, " ") }