Data.Version
| Авторские права | (c) Университет Глазго 2004 |
|---|---|
| Лицензия | BSD-стиль (см. файл libraries/base/LICENSE) |
| Поддержка | libraries@haskell.org |
| Устойчивость | стабильная |
| Переносимость | непереносимая (локальная универсальная квантификация в ReadP) |
| Safe Haskell | Безопасный |
| Язык | Haskell2010 |
Описание
Общий API для представления и обработки версий.
Схемы версионирования разнообразны, поэтому представление версии, предоставляемое этой библиотекой, призвано найти компромисс между полной общностью, где практически невозможно предоставить общие функциональные возможности, и фиксированием конкретной схемы версионирования, которая, вероятно, будет слишком ограниченной.
Поэтому здесь используется подход, который подразумевает представление, включающее многие из схем версионирования, обычно используемые в приложениях. Мы предоставляем реализации Eq, Ord и преобразование в/из String, которые будут подходящими для некоторых приложений, но не для всех.
Тип Version
Version представляет версию программного продукта.
Предоставлен экземпляр Eq, который реализует точное равенство с учётом перестановки тегов в поле versionTags.
Также предоставляется экземпляр Ord, который задаёт лексикографический порядок по полям versionBranch (т.е. 2.1 > 2.0, 1.2.3 > 1.2.2 и т.д.). Это ожидаемо достаточно для многих случаев использования, но обратите внимание, что для вашей схемы версионирования может потребоваться более конкретный порядок. Например, некоторые схемы версионирования могут включать предварительные релизы, которые имеют теги "pre1", "pre2" и так далее, и эти теги необходимо учитывать при определении порядка. В некоторых случаях может быть уместнее порядок по дате, поэтому приложение должно искать теги date в поле versionTags и сравнивать их. В общем случае, не всегда предполагайте, что операции сравнения compare и другие операции Ord подходят для каждого Version.
Аналогично, конкретные представления версий могут различаться. Предоставлено одно возможное конкретное представление (см. showVersion и parseVersion), но в зависимости от приложения может быть более подходящим другое конкретное представление.
Конструкторы
| Version | |
Поля
| |
Примеры
Определено в GHC.Internal.IsList | |
| Чтение Версия Исходный код | С: base-2.1 |
Определено в GHC.Internal.Data.Version МетодыreadsPrec :: Целое -> ReadS Версия Исходный код readList :: ReadS [Версия] Исходный код | |
| Вывод Версия Исходный код | С: base-2.1 |
Определено в GHC.Internal.Data.Version МетодыshowsPrec :: Целое -> Версия -> ShowS Исходный код show :: Версия -> Строка Исходный код showList :: [Версия] -> ShowS Исходный код | |
| Равенство Версия Исходный код | С: base-2.1 |
Определено в GHC.Internal.Data.Version Методы(==) :: Версия -> Версия -> Булево Исходный код (/=) :: Версия -> Версия -> Булево Исходный код | |
| Порядок Версия Исходный код | С: base-2.1 |
Определено в GHC.Internal.Data.Version Методыcompare :: Версия -> Версия -> Порядок Исходный код (<) :: Версия -> Версия -> Булево Исходный код (<=) :: Версия -> Версия -> Булево Исходный код (>) :: Версия -> Версия -> Булево Исходный код (>=) :: Версия -> Версия -> Булево Исходный код max :: Версия -> Версия -> Версия Исходный код min :: Версия -> Версия -> Версия Исходный код | |
| type Rep Version Source | Since: base-4.9.0.0 |
Определено в GHC.Internal.Data.Version type Rep Version = D1 ('MetaData "Version" "GHC.Internal.Data.Version" "ghc-internal" 'False) (C1 ('MetaCons "Version" 'PrefixI 'True) (S1 ('MetaSel ('Just "versionBranch") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Int]) :*: S1 ('MetaSel ('Just "versionTags") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [String]))) | |
| type Item Version Source | |
Определено в GHC.Internal.IsList | |
Конкретное представление Version
showVersion :: Version -> String Source
Предоставляет одно возможное конкретное представление для Version. Для версии с versionBranch = [1,2,3] и versionTags = ["tag1","tag2"], результатом будет 1.2.3-tag1-tag2.
parseVersion :: ReadP Version Source
Парсер для версий в формате, производимом showVersion.
Функция-конструктор
makeVersion :: [Int] -> Version Source
Создаёт Version без тегов.
Since: base-4.8.0.0
© The University of Glasgow and others
Licensed under a BSD-style license (see top of the page).
https://downloads.haskell.org/~ghc/9.12.1/docs/libraries/base-4.21.0.0-8e62/Data-Version.html