Spec-Zone.ru › Haskell 7

Data.Version

Авторские права (c) Университет Глазго 2004
Лицензия BSD-стиль (см. файл libraries/base/LICENSE)
Поддержка libraries@haskell.org
Устойчивость экспериментальная
Переносимость непереносимая (локальная универсальная квантификация в ReadP)
Безопасный Haskell Безопасный
Язык Haskell2010

Содержание

  • Тип Version
  • Конкретное представление Version
  • Функция-конструктор

Описание

Общая библиотека для представления и обработки версий.

Схемы версионирования разнообразны, поэтому представленное в этой библиотеке представление версии является компромиссом между полной общностью, где практически невозможно предоставить общие функциональные возможности, и фиксированием конкретной схемы версионирования, что, вероятно, окажется слишком ограничительным.

Поэтому здесь используется представление, включающее многие схемы версионирования, обычно используемые в приложениях, и мы предоставляем реализации Eq, Ord и преобразования в/из String, которые будут подходить для некоторых приложений, но не для всех.

Тип Version

data 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

Поля

versionBranch :: [Int]

Численная ветвь этой версии. Это отражает тот факт, что большинство версий программного обеспечения имеют древовидную структуру; существует основной ствол, который помечается версиями в различные моменты (1, 2, 3...), и первая ветвь от ствола после версии 3 — 3.1, вторая ветвь от ствола после версии 3 — 3.2 и так далее. Дерево может ветвиться произвольно, просто добавляя больше цифр.

Мы представляем ветвь как список Int, таким образом, версия 3.2.1 становится [3, 2, 1]. Лексикографический порядок (т.е. стандартный экземпляр Ord для [Int]) даёт естественный порядок ветвей.

versionTags :: [String]

Устарело: см. билет GHC #2496

Версия может быть помечена произвольным списком строк. Интерпретация списка меток полностью зависит от объекта, к которому эта версия применяется.

Экземпляры

IsList Version

С момента: 4.8.0.0

Eq Version
Data Version
Ord Version
Read Version
Show Version
type Item Version = Int

Конкретное представление Version

showVersion :: Version -> String Источник

Предоставляет одно возможное конкретное представление для Version. Для версии с versionBranch = [1,2,3] и versionTags = ["tag1","tag2"], вывод будет 1.2.3-tag1-tag2.

parseVersion :: ReadP Version Источник

Парсер версий в формате, создаваемом showVersion.

Функция-конструктор

makeVersion :: [Int] -> Version Источник

Создаёт Version без меток.

С момента: 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/7.10.3/docs/html/libraries/base-4.8.2.0/Data-Version.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API