@@ -139,12 +139,9 @@ func (l *Layout) Set(flags ...Layout) (Layout, error) {
139139
140140 for _ , flag := range flags {
141141 if ! flag .IsValid () {
142- return * l , fmt .Errorf ("the %d is invalid flag value" , flag )
143- }
144-
145- if ok , _ := r .Contains (flag ); ! ok {
146- r += Layout (flag )
142+ return * l , fmt .Errorf ("the %d is an invalid flag value" , flag )
147143 }
144+ r |= flag
148145 }
149146
150147 * l = r
@@ -156,15 +153,11 @@ func (l *Layout) Set(flags ...Layout) (Layout, error) {
156153// an error if one or more invalid flags are specified.
157154func (l * Layout ) Add (flags ... Layout ) (Layout , error ) {
158155 r := * l
159-
160156 for _ , flag := range flags {
161157 if ! flag .IsValid () {
162- return * l , fmt .Errorf ("the %d is invalid flag value" , flag )
163- }
164-
165- if ok , _ := r .Contains (flag ); ! ok {
166- r += Layout (flag )
158+ return * l , fmt .Errorf ("the %d is an invalid flag value" , flag )
167159 }
160+ r |= flag
168161 }
169162
170163 * l = r
@@ -176,15 +169,11 @@ func (l *Layout) Add(flags ...Layout) (Layout, error) {
176169// old value and an error if one or more invalid flags are specified.
177170func (l * Layout ) Delete (flags ... Layout ) (Layout , error ) {
178171 r := * l
179-
180172 for _ , flag := range flags {
181173 if ! flag .IsValid () {
182- return * l , fmt .Errorf ("the %d is invalid flag value" , flag )
183- }
184-
185- if ok , _ := r .Contains (flag ); ok {
186- r -= Layout (flag )
174+ return * l , fmt .Errorf ("the %d is an invalid flag value" , flag )
187175 }
176+ r &^= flag
188177 }
189178
190179 * l = r
0 commit comments