FSValidation 0.0.5
See the version list below for details.
dotnet add package FSValidation --version 0.0.5
NuGet\Install-Package FSValidation -Version 0.0.5
<PackageReference Include="FSValidation" Version="0.0.5" />
paket add FSValidation --version 0.0.5
#r "nuget: FSValidation, 0.0.5"
// Install FSValidation as a Cake Addin #addin nuget:?package=FSValidation&version=0.0.5 // Install FSValidation as a Cake Tool #tool nuget:?package=FSValidation&version=0.0.5
Validation
Example Usage
First, we create some basic validation functions using the existing Result<_, _>
type in F#.
Note that the Error
case returns a string list
. This is necessary.
let validateAge (age: int) =
if age = 21
then Ok 21
else Error ["Invalid Age"]
let validateHeight (height: float) =
if height = 180.
then Ok 180.
else Error ["Invalid Height"]
let validateName (name: string) =
if name = "Alice"
then Ok "Alice"
else Error ["Invalid Name"]
Then, we create a composite data type that we want to validate.
type Data = {
Age: int
Height: float
Name: string
NotValidated: string
}
Now, we can use our validation
computation expression to compose our existing validators.
let validate (data: Data) =
validation {
validate age in validateAge data.Age
validate height in validateHeight data.Height
validate name in validateName data.Name
return {
data with
Age = age
Height = height
Name = name
}
}
We can now call our validate
method:
validate {
Age = 21
Height = 180.
Name = "Alice"
NotValidated = "hello"
}
which will give us the following output:
Ok ({
Age = 21
Height = 180.
Name = "Alice"
NotValidated = "hello"
})
If we can validate
with invalid data:
validate {
Age = 20
Height = 180.
Name = "Bob"
NotValidated = "hello"
}
we get the following result:
Error [
"Invalid Age"
"Invalid Name"
]
Take a look at sample.fsx
or our unit tests for more examples.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- FSharp.Core (>= 4.6.1)
- FSharp.Utils (>= 0.0.3)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on FSValidation:
Package | Downloads |
---|---|
GraphQL.FSharp
GraphQL.FSharp library. |
GitHub repositories
This package is not used by any popular GitHub repositories.