1
0
mirror of https://github.com/IBM/fp-go.git synced 2025-08-10 22:31:32 +02:00

fix: use endomorphism

Signed-off-by: Dr. Carsten Leue <carsten.leue@de.ibm.com>
This commit is contained in:
Dr. Carsten Leue
2023-12-17 12:34:15 +01:00
parent 5caabf478c
commit 5fcd0b1595
9 changed files with 133 additions and 17 deletions

View File

@@ -19,6 +19,7 @@ import (
"net/url"
A "github.com/IBM/fp-go/array"
ENDO "github.com/IBM/fp-go/endomorphism"
F "github.com/IBM/fp-go/function"
L "github.com/IBM/fp-go/optics/lens"
LA "github.com/IBM/fp-go/optics/lens/array"
@@ -27,8 +28,8 @@ import (
)
type (
// FormBuilder returns a function that transforms a form
FormBuilder = func(url.Values) url.Values
// FormEndomorphism returns an [ENDO.Endomorphism] that transforms a form
FormEndomorphism = ENDO.Endomorphism[url.Values]
)
var (
@@ -53,14 +54,15 @@ var (
)
// WithValue creates a [FormBuilder] for a certain field
func WithValue(name string) func(value string) FormBuilder {
return F.Flow2(
func WithValue(name string) func(value string) FormEndomorphism {
return F.Flow3(
O.Of[string],
AtValue(name).Set,
ENDO.Of[func(url.Values) url.Values],
)
}
// WithoutValue creates a [FormBuilder] that removes a field
func WithoutValue(name string) FormBuilder {
func WithoutValue(name string) FormEndomorphism {
return AtValue(name).Set(noField)
}