Skip to content

Commit

Permalink
feat: add rules
Browse files Browse the repository at this point in the history
  • Loading branch information
franklinkim committed Mar 16, 2023
1 parent 419c5d5 commit 7d50efc
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 11 deletions.
12 changes: 1 addition & 11 deletions rule/rule.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,9 @@ import (

type (
Rule[T any] func(ctx context.Context, v T) error
DynamicRule func(ctx context.Context) error
Rules[T any] []Rule[T]
AnyRule = Rule[any]
BoolRule = Rule[bool]
StringRule = Rule[string]
StringRules = Rules[string]
IntRule = Rule[int]
Int8Rule = Rule[int8]
Int32Rule = Rule[int32]
Expand All @@ -23,12 +20,5 @@ type (
Float32Rule = Rule[float32]
Float64Rule = Rule[float64]
InterfaceRule = Rule[interface{}]
DynamicRule func(ctx context.Context) error
)

func (r Rules[T]) Append(rules ...Rule[T]) Rules[T] {
return append(r, rules...)
}

func (r Rules[T]) Prepend(rules ...Rule[T]) Rules[T] {
return append(rules, r...)
}
27 changes: 27 additions & 0 deletions rule/rules.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package rule

type (
Rules[T any] []Rule[T]
AnyRules = Rules[any]
BoolRules = Rules[bool]
StringRules = Rules[string]
IntRules = Rules[int]
Int8Rules = Rules[int8]
Int32Rules = Rules[int32]
Int64Rules = Rules[int64]
UIntRules = Rules[uint]
UInt8Rules = Rules[uint8]
UInt32Rules = Rules[uint32]
UInt64Rules = Rules[uint64]
Float32Rules = Rules[float32]
Float64Rules = Rules[float64]
InterfaceRules = Rules[interface{}]
)

func (r Rules[T]) Append(rules ...Rule[T]) Rules[T] {
return append(r, rules...)
}

func (r Rules[T]) Prepend(rules ...Rule[T]) Rules[T] {
return append(rules, r...)
}

0 comments on commit 7d50efc

Please sign in to comment.