Skip to content

Commit ec37e40

Browse files
committed
expand example
1 parent 15fe895 commit ec37e40

File tree

1 file changed

+27
-4
lines changed

1 file changed

+27
-4
lines changed

README.md

Lines changed: 27 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,31 @@ So you define `VerifiedModel` like this:
3535
and you can verify this by using a `Json.Decode.Pipeline`-like api.
3636

3737
```elm
38-
Verify.ok VerifiedModel
39-
|> keep .id
40-
|> verify .firstName (Maybe.Verify.isJust "error")
41-
|> verify .lastName (Maybe.Verify.isJust"error")
38+
validator : Validator String Model VerifiedModel
39+
validator =
40+
Verify.ok VerifiedModel
41+
|> keep .id
42+
|> verify .firstName (Maybe.Verify.isJust "no first name")
43+
|> verify .lastName (Maybe.Verify.isJust"no last name")
44+
```
45+
46+
You can execute a `Validator` just by calling it.
47+
48+
```elm
49+
validator { id = 1, firstName = Just "Luke", lastName = Just "Skywalker" }
50+
--> Ok { id = 1, firstName = "Luke", lastName = "Skywalker" }
51+
52+
validator { id = 1, firstName = Nothing, lastName = Nothing }
53+
--> Err [ "no first name", "no last name" ]
54+
```
55+
56+
So far we've used `Validator`s from `Maybe.Verify`. There are other `Validator`s in this package, but it's also simple to write your own `Validator`.
57+
58+
```elm
59+
possitiveNumber : error -> Validator error Int Int
60+
possitiveNumber error input =
61+
if input >= 0 then
62+
Ok input
63+
else
64+
Err [ error ]
4265
```

0 commit comments

Comments
 (0)