semantic-version-0.0.2: Semantic Version
Safe HaskellSafe-Inferred
LanguageHaskell2010

Data.SemanticVersion.Version

Synopsis

Documentation

>>> import Text.Parsec(parse)
>>> import Data.Either(isLeft)

class AsVersion a where Source #

Instances

Instances details
AsVersion Version Source # 
Instance details

Defined in Data.SemanticVersion.Version

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