123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- package css
- import "fmt"
- // Declaration represents a parsed style property
- type Declaration struct {
- Property string
- Value string
- Important bool
- }
- // NewDeclaration instanciates a new Declaration
- func NewDeclaration() *Declaration {
- return &Declaration{}
- }
- // Returns string representation of the Declaration
- func (decl *Declaration) String() string {
- return decl.StringWithImportant(true)
- }
- // StringWithImportant returns string representation with optional !important part
- func (decl *Declaration) StringWithImportant(option bool) string {
- result := fmt.Sprintf("%s: %s", decl.Property, decl.Value)
- if option && decl.Important {
- result += " !important"
- }
- result += ";"
- return result
- }
- // Equal returns true if both Declarations are equals
- func (decl *Declaration) Equal(other *Declaration) bool {
- return (decl.Property == other.Property) && (decl.Value == other.Value) && (decl.Important == other.Important)
- }
- //
- // DeclarationsByProperty
- //
- // DeclarationsByProperty represents sortable style declarations
- type DeclarationsByProperty []*Declaration
- // Implements sort.Interface
- func (declarations DeclarationsByProperty) Len() int {
- return len(declarations)
- }
- // Implements sort.Interface
- func (declarations DeclarationsByProperty) Swap(i, j int) {
- declarations[i], declarations[j] = declarations[j], declarations[i]
- }
- // Implements sort.Interface
- func (declarations DeclarationsByProperty) Less(i, j int) bool {
- return declarations[i].Property < declarations[j].Property
- }
|