reform-0.2.7.1: reform is a type-safe HTML form generation and validation library

Safe HaskellSafe
LanguageHaskell98

Text.Reform.Backend

Description

This module contains two classes. FormInput is a class which is parameterized over the input type used to represent form data in different web frameworks. There should be one instance for each framework, such as Happstack, Snap, WAI, etc.

The FormError class is used to map error messages into an application specific error type.

Synopsis

Documentation

data CommonFormError input Source

an error type used to represent errors that are common to all backends

These errors should only occur if there is a bug in the reform-* packages. Perhaps we should make them an Exception so that we can get rid of the FormError class.

Instances

Eq input => Eq (CommonFormError input) Source 
Ord input => Ord (CommonFormError input) Source 
Show input => Show (CommonFormError input) Source 

commonFormErrorStr Source

Arguments

:: (input -> String)

show input in a format suitable for error messages

-> CommonFormError input

a CommonFormError

-> String 

some default error messages for CommonFormError

class FormError e where Source

A Class to lift a CommonFormError into an application-specific error type

Associated Types

type ErrorInputType e Source

class FormInput input where Source

Class which all backends should implement.

Minimal complete definition

getInputStrings, getInputFile

Associated Types

type FileType input Source

input is here the type that is used to represent a value uploaded by the client in the request.

Methods

getInputString :: (FormError error, ErrorInputType error ~ input) => input -> Either error String Source

Parse the input into a string. This is used for simple text fields among other things

getInputStrings :: input -> [String] Source

Should be implemented

getInputText :: (FormError error, ErrorInputType error ~ input) => input -> Either error Text Source

Parse the input value into Text

getInputTexts :: input -> [Text] Source

Can be overriden for efficiency concerns

getInputFile :: (FormError error, ErrorInputType error ~ input) => input -> Either error (FileType input) Source

Get a file descriptor for an uploaded file