Data.Version
| Авторское право | (c) The University of Glasgow 2004 |
|---|---|
| Лицензия | в стиле BSD (см. файл libraries/base/LICENSE) |
| Сопровождающий | libraries@haskell.org |
| Стабильность | стабильная |
| Переносимость | непереносимый (локальное всеобщее квантифицирование в ReadP) |
| Безопасный Haskell | Safe |
| Язык | Haskell2010 |
Описание
Общий 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 | |
Поля
| |
Экземпляры
| Eq Version Источник | Начиная с: base-2.1 |
||||
| Ord Version Источник | Начиная с: base-2.1 |
||||
Определён в GHC.Internal.Data.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 Связанные типы
| |||||
| IsList Version Источник | Начиная с: base-4.8.0.0 |
||||
| Read Version Источник | Начиная с: base-2.1 |
||||
| Show Version Источник | Начиная с: base-2.1 |
||||
| 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 | |||||
Конкретное представление 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