Spec-Zone.ru › Haskell 9

Data.Version

Авторское право (c) The University of Glasgow 2004
Лицензия в стиле BSD (см. файл libraries/base/LICENSE)
Сопровождающий libraries@haskell.org
Стабильность стабильная
Переносимость непереносимый (локальное всеобщее квантифицирование в ReadP)
Безопасный Haskell Safe
Язык Haskell2010

Содержание

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

Описание

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

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

Поэтому здесь используется подход, при котором предоставляется представление, охватывающее многие распространённые схемы версионирования, а также реализации 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.2 и так далее. Дерево можно разветвлять произвольным образом, просто добавляя цифры.

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

  • versionTags :: [String]

    Устарело: см. задачу GHC #2496

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

Экземпляры
Сведения об экземплярах
Eq Version Источник

Начиная с: base-2.1

Сведения об экземпляре

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

Методы

(==) :: Version -> Version -> Bool Источник

(/=) :: Version -> Version -> Bool Источник

Ord Version Источник

Начиная с: base-2.1

Сведения об экземпляре

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

Методы

compare :: Version -> Version -> Ordering Источник

(<) :: Version -> Version -> Bool Источник

(<=) :: Version -> Version -> Bool Источник

(>) :: Version -> Version -> Bool Источник

(>=) :: Version -> Version -> Bool Источник

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

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

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)) -> Maybe (c Version) Источник

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Version) Источник

gmapT :: (forall b. Data b => b -> b) -> Version -> Version Источник

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Version -> r Источник

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Version -> r Источник

gmapQ :: (forall d. Data d => d -> u) -> Version -> [u] Источник

gmapQi :: Int -> (forall d. Data d => d -> u) -> Version -> u Источник

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Version -> m Version Источник

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Version -> m Version Источник

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Version -> m 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 ('Just "versionBranch") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Int]) :*: S1 ('MetaSel ('Just "versionTags") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [String])))

Методы

from :: Version -> Rep Version x Источник

to :: Rep Version x -> Version Источник

IsList Version Источник

Начиная с: base-4.8.0.0

Сведения об экземпляре

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

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

type Item Version
Сведения об экземпляре

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

type Item Version = Int

Методы

fromList :: [Item Version] -> Version Источник

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

toList :: Version -> [Item Version] Источник

Read Version Источник

Начиная с: base-2.1

Сведения об экземпляре

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

Методы

readsPrec :: Int -> ReadS Version Источник

readList :: ReadS [Version] Источник

readPrec :: ReadPrec Version Источник

readListPrec :: ReadPrec [Version] Источник

Show Version Источник

Начиная с: base-2.1

Сведения об экземпляре

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

Методы

showsPrec :: Int -> Version -> ShowS Источник

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

showList :: [Version] -> ShowS Источник

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 ('Just "versionBranch") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Int]) :*: S1 ('MetaSel ('Just "versionTags") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [String])))
type Item Version Источник
Сведения об экземпляре

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

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 без тегов

Начиная с: 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.14.1/docs/libraries/base-4.22.0.0-66f8/Data-Version.html

Spec-Zone.ru

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