Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Synopsis
- data Version = Version NumericIdentifier NumericIdentifier NumericIdentifier
- class HasVersion a where
- class AsVersion a where
- parseVersion :: CharParsing p => p Version
Documentation
>>>
import Text.Parsec(parse)
>>>
import Data.Either(isLeft)
class HasVersion a where Source #
version :: Lens' a Version Source #
versionMajor :: Lens' a NumericIdentifier Source #
Instances
parseVersion :: CharParsing p => p Version Source #
>>>
parse (parseVersion <* eof) "parseVersion" "0.0.0"
Right (Version NumericIdentifierZero NumericIdentifierZero NumericIdentifierZero)
>>>
isLeft (parse parseVersion "parseVersion" "")
True
>>>
parse (parseVersion <* eof) "parseVersion" "1.2.3"
Right (Version (NumericIdentifierDigits DecDigitNoZero1 []) (NumericIdentifierDigits DecDigitNoZero2 []) (NumericIdentifierDigits DecDigitNoZero3 []))
>>>
isLeft(parse parseVersion "parseVersion" "01.2.3")
True
>>>
parse (parseVersion <* eof) "parseVersion" "10.2.3"
Right (Version (NumericIdentifierDigits DecDigitNoZero1 [DecDigit0]) (NumericIdentifierDigits DecDigitNoZero2 []) (NumericIdentifierDigits DecDigitNoZero3 []))
>>>
parse (parseVersion <* eof) "parseVersion" "38012.5.6"
Right (Version (NumericIdentifierDigits DecDigitNoZero3 [DecDigit8,DecDigit0,DecDigit1,DecDigit2]) (NumericIdentifierDigits DecDigitNoZero5 []) (NumericIdentifierDigits DecDigitNoZero6 []))
>>>
parse (parseVersion <* eof) "parseVersion" "38012.5.5432"
Right (Version (NumericIdentifierDigits DecDigitNoZero3 [DecDigit8,DecDigit0,DecDigit1,DecDigit2]) (NumericIdentifierDigits DecDigitNoZero5 []) (NumericIdentifierDigits DecDigitNoZero5 [DecDigit4,DecDigit3,DecDigit2]))
>>>
isLeft (parse (parseVersion <* eof) "parseVersion" "38012.05.5432")
True
>>>
isLeft (parse (parseVersion <* eof) "parseVersion" "38012.5.05432")
True
>>>
isLeft (parse parseVersion "parseVersion" "a")
True
>>>
isLeft (parse parseVersion "parseVersion" "-")
True