Spec-Zone.ru › Haskell 8

Data.Version

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

Содержание

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

Описание

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

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

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

Тип Version

data Version Исходный код

A 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

Since: base-4.8.0.0

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

Определено в GHC.Exts

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

type Item Version Source

Методы

fromList :: [Item Version] -> Version Source

fromListN :: Int -> [Item Version] -> Version Source

toList :: Version -> [Item Version] Source

Eq Version

Since: base-2.1

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

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

Методы

(==) :: Version -> Version -> Bool Source

(/=) :: Version -> Version -> Bool Source

Data Version

Since: base-4.7.0.0

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

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

Методы

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Version -> c Version Source

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Version Source

toConstr :: Version -> Constr Source

dataTypeOf :: Version -> DataType Source

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Version) Source

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Version) Source

gmapT :: (forall b. Data b => b -> b) -> Version -> Version Source

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Version -> r Source

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Version -> r Source

gmapQ :: (forall d. Data d => d -> u) -> Version -> [u] Source

gmapQi :: Int -> (forall d. Data d => d -> u) -> Version -> u Source

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Version -> m Version Source

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Version -> m Version Source

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Version -> m Version Source

Ord Version

Since: base-2.1

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

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

Read Version

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

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

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

Методы

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

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

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

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

Show Version

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

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

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

Методы

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

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

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

Generic Version

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

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

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

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

type Rep Version :: Type -> Type Источник

Методы

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

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

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

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

type Rep Version = D1 ('MetaData "Version" "Data.Version" "base" '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.Exts

type Item Version = Int

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

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

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

parseVersion :: ReadP Version Source

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

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

makeVersion :: [Int] -> Version Source

Конструирует 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/8.10.2/docs/html/libraries/base-4.14.1.0/Data-Version.html

Spec-Zone.ru

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