Spec-Zone.ru › Haskell 9

Data.Version

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

Содержание

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

Описание

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

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

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

Тип Version

data Version Source

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

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

Примеры
Подробности примеров
Data Version Исходный код

С момента: base-4.7.0.0

Подробности примера

Определено в GHC.Internal.Data.Data

Методы

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Version -> c Version Исходный код

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Version Исходный код

toConstr :: Version -> Constr Исходный код

dataTypeOf :: Version -> DataType Исходный код

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> МожетБыть (c Version) Исходный код

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> МожетБыть (c Version) Исходный код

gmapT :: (forall b. Data b => b -> b) -> Version -> Version Исходный код

Generic Version Исходный код
Подробности примера

Определено в GHC.Internal.Data.Version

Связанные типы

type Rep Version

С момента: 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 ('МожетБыть "versionBranch") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [ЦелоеЧисло]) :*: S1 ('MetaSel ('МожетБыть "versionTags") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Строка])))

Методы

from :: Version -> Rep Version x Исходный код

to :: Rep Version x -> Version Исходный код

Подробности экземпляра

Определено в GHC.Internal.IsList

Связанные типы

type Item Версия
Подробности экземпляра

Определено в GHC.Internal.IsList

type Item Версия = Целое

Методы

fromList :: [Item Версия] -> Версия Исходный код

fromListN :: Целое -> [Item Версия] -> Версия Исходный код

toList :: Версия -> [Item Версия] Исходный код

Чтение Версия Исходный код

С: base-2.1

Подробности экземпляра

Определено в GHC.Internal.Data.Version

Методы

readsPrec :: Целое -> ReadS Версия Исходный код

readList :: ReadS [Версия] Исходный код

readPrec :: ReadPrec Версия Исходный код

readListPrec :: ReadPrec [Версия] Исходный код

Вывод Версия Исходный код

С: 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

type Item Version = Int

Конкретное представление 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

Spec-Zone.ru

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