Safe Haskell | None |
---|---|
Language | Haskell2010 |
Data.SemVer
Synopsis
- data SemVerRange
- = Eq SemVer
- | Gt SemVer
- | Lt SemVer
- | Geq SemVer
- | Leq SemVer
- | And SemVerRange SemVerRange
- | Or SemVerRange SemVerRange
- data SemVer = SemVer {
- svMajor :: !Int
- svMinor :: !Int
- svPatch :: !Int
- svTags :: !PrereleaseTags
- svBuildMetadata :: !BuildMetaData
- data PrereleaseTag
- newtype PrereleaseTags = PrereleaseTags [PrereleaseTag]
- type BuildMetaData = [Text]
- versionsOf :: SemVerRange -> [SemVer]
- stripRangeTags :: SemVerRange -> SemVerRange
- semver :: Int -> Int -> Int -> SemVer
- semver' :: Int -> Int -> Int -> PrereleaseTags -> SemVer
- semver'' :: Int -> Int -> Int -> PrereleaseTags -> BuildMetaData -> SemVer
- toTuple :: SemVer -> (Int, Int, Int)
- tuplesOf :: SemVerRange -> [(Int, Int, Int)]
- rangePrereleaseTags :: SemVerRange -> PrereleaseTags
- sharedTags :: SemVerRange -> Maybe PrereleaseTags
- anyVersion :: SemVerRange
- renderSV :: SemVer -> Text
- matches :: SemVerRange -> SemVer -> Bool
- matchesSimple :: SemVerRange -> SemVer -> Bool
- matchesTags :: SemVerRange -> PrereleaseTags -> PrereleaseTags -> Bool
- bestMatch :: SemVerRange -> [SemVer] -> Either String SemVer
- parseSemVer :: Text -> Either ParseError SemVer
- parseSemVerRange :: Text -> Either ParseError SemVerRange
- pSemVerRange :: Parser SemVerRange
- pSemVer :: Parser SemVer
- fromHaskellVersion :: Version -> Either Text SemVer
- matchText :: Text -> Text -> Either Text Bool
- splitWS :: Text -> [Text]
Documentation
data SemVerRange #
A range specifies bounds on a semver.
Constructors
Eq SemVer infixl 4 | Exact equality |
Gt SemVer infixl 4 | Greater than |
Lt SemVer infixl 4 | Less than |
Geq SemVer infixl 4 | Greater than or equal to |
Leq SemVer infixl 4 | Less than or equal to |
And SemVerRange SemVerRange infixl 3 | Conjunction |
Or SemVerRange SemVerRange infixl 3 | Disjunction |
Instances
Show SemVerRange # | |
Defined in Data.SemVer.Types Methods showsPrec :: Int -> SemVerRange -> ShowS # show :: SemVerRange -> String # showList :: [SemVerRange] -> ShowS # | |
Eq SemVerRange # | |
Defined in Data.SemVer.Types | |
Ord SemVerRange # | |
Defined in Data.SemVer.Types Methods compare :: SemVerRange -> SemVerRange -> Ordering # (<) :: SemVerRange -> SemVerRange -> Bool # (<=) :: SemVerRange -> SemVerRange -> Bool # (>) :: SemVerRange -> SemVerRange -> Bool # (>=) :: SemVerRange -> SemVerRange -> Bool # max :: SemVerRange -> SemVerRange -> SemVerRange # min :: SemVerRange -> SemVerRange -> SemVerRange # |
A SemVer has major, minor and patch versions, and zero or more pre-release version tags.
Constructors
SemVer | |
Fields
|
Instances
data PrereleaseTag #
Prerelease tags can either be numbers or text.
Instances
IsString PrereleaseTag # | |||||
Defined in Data.SemVer.Types Methods fromString :: String -> PrereleaseTag # | |||||
Generic PrereleaseTag # | |||||
Defined in Data.SemVer.Types Associated Types
| |||||
Show PrereleaseTag # | |||||
Defined in Data.SemVer.Types Methods showsPrec :: Int -> PrereleaseTag -> ShowS # show :: PrereleaseTag -> String # showList :: [PrereleaseTag] -> ShowS # | |||||
Eq PrereleaseTag # | |||||
Defined in Data.SemVer.Types Methods (==) :: PrereleaseTag -> PrereleaseTag -> Bool # (/=) :: PrereleaseTag -> PrereleaseTag -> Bool # | |||||
Ord PrereleaseTag # | |||||
Defined in Data.SemVer.Types Methods compare :: PrereleaseTag -> PrereleaseTag -> Ordering # (<) :: PrereleaseTag -> PrereleaseTag -> Bool # (<=) :: PrereleaseTag -> PrereleaseTag -> Bool # (>) :: PrereleaseTag -> PrereleaseTag -> Bool # (>=) :: PrereleaseTag -> PrereleaseTag -> Bool # max :: PrereleaseTag -> PrereleaseTag -> PrereleaseTag # min :: PrereleaseTag -> PrereleaseTag -> PrereleaseTag # | |||||
Hashable PrereleaseTag # | |||||
Defined in Data.SemVer.Types | |||||
type Rep PrereleaseTag # | |||||
Defined in Data.SemVer.Types type Rep PrereleaseTag = D1 ('MetaData "PrereleaseTag" "Data.SemVer.Types" "semver-range-0.2.8-KRrCz6UnWZ5FBUTiX96cH5" 'False) (C1 ('MetaCons "IntTag" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int)) :+: C1 ('MetaCons "TextTag" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text))) |
newtype PrereleaseTags #
Constructors
PrereleaseTags [PrereleaseTag] |
Instances
Monoid PrereleaseTags # | |||||
Defined in Data.SemVer.Types Methods mappend :: PrereleaseTags -> PrereleaseTags -> PrereleaseTags # mconcat :: [PrereleaseTags] -> PrereleaseTags # | |||||
Semigroup PrereleaseTags # | |||||
Defined in Data.SemVer.Types Methods (<>) :: PrereleaseTags -> PrereleaseTags -> PrereleaseTags # sconcat :: NonEmpty PrereleaseTags -> PrereleaseTags # stimes :: Integral b => b -> PrereleaseTags -> PrereleaseTags # | |||||
Generic PrereleaseTags # | |||||
Defined in Data.SemVer.Types Associated Types
Methods from :: PrereleaseTags -> Rep PrereleaseTags x # to :: Rep PrereleaseTags x -> PrereleaseTags # | |||||
IsList PrereleaseTags # | |||||
Defined in Data.SemVer.Types Associated Types
Methods fromList :: [Item PrereleaseTags] -> PrereleaseTags # fromListN :: Int -> [Item PrereleaseTags] -> PrereleaseTags # toList :: PrereleaseTags -> [Item PrereleaseTags] # | |||||
Show PrereleaseTags # | |||||
Defined in Data.SemVer.Types Methods showsPrec :: Int -> PrereleaseTags -> ShowS # show :: PrereleaseTags -> String # showList :: [PrereleaseTags] -> ShowS # | |||||
Eq PrereleaseTags # | |||||
Defined in Data.SemVer.Types Methods (==) :: PrereleaseTags -> PrereleaseTags -> Bool # (/=) :: PrereleaseTags -> PrereleaseTags -> Bool # | |||||
Ord PrereleaseTags # | |||||
Defined in Data.SemVer.Types Methods compare :: PrereleaseTags -> PrereleaseTags -> Ordering # (<) :: PrereleaseTags -> PrereleaseTags -> Bool # (<=) :: PrereleaseTags -> PrereleaseTags -> Bool # (>) :: PrereleaseTags -> PrereleaseTags -> Bool # (>=) :: PrereleaseTags -> PrereleaseTags -> Bool # max :: PrereleaseTags -> PrereleaseTags -> PrereleaseTags # min :: PrereleaseTags -> PrereleaseTags -> PrereleaseTags # | |||||
Hashable PrereleaseTags # | |||||
Defined in Data.SemVer.Types | |||||
type Rep PrereleaseTags # | |||||
Defined in Data.SemVer.Types type Rep PrereleaseTags = D1 ('MetaData "PrereleaseTags" "Data.SemVer.Types" "semver-range-0.2.8-KRrCz6UnWZ5FBUTiX96cH5" 'True) (C1 ('MetaCons "PrereleaseTags" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [PrereleaseTag]))) | |||||
type Item PrereleaseTags # | |||||
Defined in Data.SemVer.Types |
type BuildMetaData = [Text] #
versionsOf :: SemVerRange -> [SemVer] #
Pull all of the concrete versions out of a range.
stripRangeTags :: SemVerRange -> SemVerRange #
Strip out all prerelease tags from a given SemVerRange
.
semver'' :: Int -> Int -> Int -> PrereleaseTags -> BuildMetaData -> SemVer #
Create a SemVer with tags and metadata.
rangePrereleaseTags :: SemVerRange -> PrereleaseTags #
Get all of the prerelease tags from a version range.
sharedTags :: SemVerRange -> Maybe PrereleaseTags #
Get the range prerelease tags if they're all the same; otherwise Nothing.
Satisfies any version.
matches :: SemVerRange -> SemVer -> Bool infixl 2 #
Returns whether a given semantic version matches a range. Note that there are special cases when there are prerelease tags. For details see https://github.com/npm/node-semver#prerelease-tags.
matchesSimple :: SemVerRange -> SemVer -> Bool #
Simple predicate calculus matching, doing AND and OR combination with numerical comparison.
matchesTags :: SemVerRange -> PrereleaseTags -> PrereleaseTags -> Bool #
Given a range and two sets of tags, the first being a bound on the second, uses the range to compare the tags and see if they match.
bestMatch :: SemVerRange -> [SemVer] -> Either String SemVer #
Gets the highest-matching semver in a range.
parseSemVer :: Text -> Either ParseError SemVer #
Parse a string as an explicit version, or return an error.
parseSemVerRange :: Text -> Either ParseError SemVerRange #
Parse a string as a version range, or return an error.
pSemVerRange :: Parser SemVerRange #
Top-level parser. Parses a semantic version range.
fromHaskellVersion :: Version -> Either Text SemVer #
Parse a semver from a haskell version. There must be exactly three numbers in the versionBranch field.