forked from cdornan/fmt
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfmt.cabal
143 lines (133 loc) · 5.24 KB
/
fmt.cabal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
name: fmt
version: 0.6.3.0
synopsis: A new formatting library
description:
A new formatting library that tries to be simple to understand while still
being powerful and providing more convenience features than other libraries
(like functions for pretty-printing maps and lists, or a function for
printing arbitrary datatypes using generics).
.
A comparison with other libraries:
.
* @printf@ (from @Text.Printf@) takes a formatting string and uses some
type tricks to accept the rest of the arguments polyvariadically. It's
very concise, but there are some drawbacks – it can't produce @Text@
(you'd have to @T.pack@ it every time) and it doesn't warn you at
compile-time if you pass wrong arguments or not enough of them.
.
* <https://hackage.haskell.org/package/text-format text-format> takes a
formatting string with curly braces denoting places where arguments
would be substituted (the arguments themselves are provided via a
tuple). If you want to apply formatting to some of the arguments, you
have to use one of the provided formatters. Like @printf@, it can fail at
runtime, but at least the formatters are first-class (and you can add new
ones).
.
* <https://hackage.haskell.org/package/formatting formatting> takes a
formatting template consisting of pieces of strings interleaved with
formatters; this ensures that arguments always match their placeholders.
@formatting@ provides lots of formatters and generally seems to be the
most popular formatting library here. Unfortunately, at least in my
experience writing new formatters can be awkward and people sometimes
have troubles understanding how @formatting@ works.
.
* <https://hackage.haskell.org/package/fmt fmt> (i.e. this library)
provides formatters that are ordinary functions, and a bunch of operators
for concatenating formatted strings; those operators also do automatic
conversion. There are some convenience formatters which aren't present in
@formatting@ (like ones for formatting maps, lists, converting to base64,
etc). Some find the operator syntax annoying, while others like it.
homepage: http://github.com/cdornan/fmt
bug-reports: http://github.com/cdornan/fmt/issues
license: BSD3
license-file: LICENSE
author: Artyom Kazak <yom@artyom.me>,
Dmitry Kovanikov <kovanikov@gmail.com>
maintainer: Chris Dornan <chris@chrisdornan.com>
-- copyright:
category: Text
tested-with:
GHC == 7.10.3
GHC == 8.0.2
GHC == 8.2.2
GHC == 8.4.4
GHC == 8.6.4
GHC == 8.6.5
GHC == 8.10.4
build-type: Simple
extra-source-files: CHANGELOG.md
tests/doctest-config.json
cabal-version: >=1.10
source-repository head
type: git
location: git://github.com/cdornan/fmt.git
library
exposed-modules: Fmt
Fmt.Time
Fmt.Internal
Fmt.Internal.Core
Fmt.Internal.Formatters
Fmt.Internal.Template
Fmt.Internal.Tuple
Fmt.Internal.Numeric
Fmt.Internal.Generic
build-depends: base >=4.6 && <5,
base64-bytestring,
bytestring,
call-stack,
containers,
formatting >= 7.0.0,
microlens >= 0.3,
text,
time,
time-locale-compat
ghc-options: -Wall -fno-warn-unused-do-bind
if impl(ghc > 8.0)
ghc-options: -Wno-redundant-constraints
hs-source-dirs: lib
default-language: Haskell2010
if !impl(ghc >= 8.0)
build-depends: semigroups == 0.18.*
test-suite tests
main-is: Main.hs
type: exitcode-stdio-1.0
build-depends: base >=4.6 && <5
, bytestring
, call-stack
, containers
, fmt
, hspec >= 2.2
, neat-interpolation
, text
, vector
ghc-options: -Wall -fno-warn-unused-do-bind
hs-source-dirs: tests
default-language: Haskell2010
test-suite doctests
default-language: Haskell2010
type: exitcode-stdio-1.0
ghc-options: -threaded
hs-source-dirs: tests
main-is: doctests.hs
build-depends: base >=4.6 && <5
, doctest
, QuickCheck
build-tool-depends: doctest-discover:doctest-discover
if impl(ghc < 8.0)
buildable: False
benchmark benches
type: exitcode-stdio-1.0
hs-source-dirs: bench
main-is: Main.hs
build-depends: base >=4.6 && <5
, bytestring
, containers
, criterion
, deepseq
, fmt
, formatting
, interpolate
, text
, vector
ghc-options: -Wall
default-language: Haskell2010