mirror of
https://github.com/rwxrob/bonzai
synced 2024-11-18 15:25:45 +00:00
Add better filter types
This commit is contained in:
parent
6f30dfca36
commit
83fc81887a
@ -16,36 +16,7 @@ limitations under the License.
|
|||||||
|
|
||||||
package filter
|
package filter
|
||||||
|
|
||||||
import (
|
import "strings"
|
||||||
"fmt"
|
|
||||||
"strings"
|
|
||||||
)
|
|
||||||
|
|
||||||
// Number combines the primitives generally considered numbers by JSON
|
|
||||||
// and other high-level structure data representations.
|
|
||||||
type Number interface {
|
|
||||||
int16 | int32 | int64 | float32 | float64
|
|
||||||
}
|
|
||||||
|
|
||||||
// Text combines byte slice and string.
|
|
||||||
type Text interface {
|
|
||||||
[]byte | string
|
|
||||||
}
|
|
||||||
|
|
||||||
// P is for "principle" in this case. These are the types that have
|
|
||||||
// representations in JSON and other high-level structured data
|
|
||||||
// representations.
|
|
||||||
type P interface {
|
|
||||||
int16 | int32 | int64 | float32 | float64 |
|
|
||||||
[]byte | string | bool
|
|
||||||
}
|
|
||||||
|
|
||||||
// Println prints ever element of the set.
|
|
||||||
func Println[T P](set []T) {
|
|
||||||
for _, i := range set {
|
|
||||||
fmt.Println(i)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// HasPrefix filters the Text input set and returns only those elements
|
// HasPrefix filters the Text input set and returns only those elements
|
||||||
// that have the give prefix.
|
// that have the give prefix.
|
||||||
|
@ -39,17 +39,3 @@ func ExampleMinus() {
|
|||||||
// Output:
|
// Output:
|
||||||
// [one three five seven]
|
// [one three five seven]
|
||||||
}
|
}
|
||||||
|
|
||||||
func ExamplePrintln() {
|
|
||||||
set := []string{"doe", "ray", "mi"}
|
|
||||||
filter.Println(set)
|
|
||||||
bools := []bool{false, true, true}
|
|
||||||
filter.Println(bools)
|
|
||||||
// Output:
|
|
||||||
// doe
|
|
||||||
// ray
|
|
||||||
// mi
|
|
||||||
// false
|
|
||||||
// true
|
|
||||||
// true
|
|
||||||
}
|
|
||||||
|
26
filter/map.go
Normal file
26
filter/map.go
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2022 Robert S. Muhlestein.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package filter
|
||||||
|
|
||||||
|
import "fmt"
|
||||||
|
|
||||||
|
// Println prints ever element of the set.
|
||||||
|
func Println[T P](set []T) {
|
||||||
|
for _, i := range set {
|
||||||
|
fmt.Println(i)
|
||||||
|
}
|
||||||
|
}
|
17
filter/map_test.go
Normal file
17
filter/map_test.go
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
package filter_test
|
||||||
|
|
||||||
|
import "github.com/rwxrob/bonzai/filter"
|
||||||
|
|
||||||
|
func ExamplePrintln() {
|
||||||
|
set := []string{"doe", "ray", "mi"}
|
||||||
|
filter.Println(set)
|
||||||
|
bools := []bool{false, true, true}
|
||||||
|
filter.Println(bools)
|
||||||
|
// Output:
|
||||||
|
// doe
|
||||||
|
// ray
|
||||||
|
// mi
|
||||||
|
// false
|
||||||
|
// true
|
||||||
|
// true
|
||||||
|
}
|
36
filter/types.go
Normal file
36
filter/types.go
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2022 Robert S. Muhlestein.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package filter
|
||||||
|
|
||||||
|
// Number combines the primitives generally considered numbers by JSON
|
||||||
|
// and other high-level structure data representations.
|
||||||
|
type Number interface {
|
||||||
|
int16 | int32 | int64 | float32 | float64
|
||||||
|
}
|
||||||
|
|
||||||
|
// Text combines byte slice and string.
|
||||||
|
type Text interface {
|
||||||
|
[]byte | string
|
||||||
|
}
|
||||||
|
|
||||||
|
// P is for "principle" in this case. These are the types that have
|
||||||
|
// representations in JSON and other high-level structured data
|
||||||
|
// representations.
|
||||||
|
type P interface {
|
||||||
|
int16 | int32 | int64 | float32 | float64 |
|
||||||
|
[]byte | string | bool
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user