Skip to content

Commit 38cdfbe

Browse files
Rewrite DescribedAs
1 parent 75fa058 commit 38cdfbe

File tree

11 files changed

+44
-46
lines changed

11 files changed

+44
-46
lines changed

.g8/module/modules/$moduleFolder$/src/main/scala/pillars/$package$/$Prefix$Loader.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,10 +83,10 @@ object $Prefix$Config:
8383
given Codec[$Prefix$Config] = Codec.AsObject.derivedConfigured
8484
end $Prefix$Config
8585

86-
private type $Prefix$UserConstraint = DescribedAs[Not[Blank], "$Prefix$ user must not be blank"]
86+
private type $Prefix$UserConstraint = Not[Blank] `DescribedAs` "$Prefix$ user must not be blank"
8787
type $Prefix$User = $Prefix$User.T
8888
object $Prefix$User extends RefinedType[String, $Prefix$UserConstraint]
8989

90-
private type $Prefix$PasswordConstraint = DescribedAs[Not[Blank], "$Prefix$ password must not be blank"]
90+
private type $Prefix$PasswordConstraint = Not[Blank] `DescribedAs` "$Prefix$ password must not be blank"
9191
type $Prefix$Password = $Prefix$Password.T
9292
object $Prefix$Password extends RefinedType[String, $Prefix$PasswordConstraint]

modules/core/src/main/scala/pillars/Logging.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ object Logging:
3939
case Format.Json => ScribeCirceJsonSupport.writer(config.output.writer)
4040
case _ => config.output.writer
4141

42-
private type BufferSizeConstraint = DescribedAs[Positive, "Buffer size should be positive"]
42+
private type BufferSizeConstraint = Positive `DescribedAs` "Buffer size should be positive"
4343
type BufferSize = BufferSize.T
4444

4545
object BufferSize extends RefinedType[Int, BufferSizeConstraint]

modules/core/src/main/scala/pillars/PillarsError.scala

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -59,17 +59,17 @@ object PillarsError:
5959
override def details: Option[String] = Some(s"Payload limit ($maxLength) exceeded")
6060
end PayloadTooLarge
6161

62-
private type CodeConstraint = DescribedAs[(Not[Empty] & LettersUpperCase), "Code cannot be empty"]
62+
private type CodeConstraint = (Not[Empty] & LettersUpperCase) `DescribedAs` "Code cannot be empty"
6363
type Code = Code.T
6464

6565
object Code extends RefinedType[String, CodeConstraint]
6666

67-
private type MessageConstraint = DescribedAs[Not[Empty], "Message cannot be empty"]
67+
private type MessageConstraint = Not[Empty] `DescribedAs` "Message cannot be empty"
6868
type Message = Message.T
6969

7070
object Message extends RefinedType[String, MessageConstraint]
7171

72-
private type ErrorNumberConstraint = DescribedAs[Positive, "Number must be strictly positive"]
72+
private type ErrorNumberConstraint = Positive `DescribedAs` "Number must be strictly positive"
7373
type ErrorNumber = ErrorNumber.T
7474

7575
object ErrorNumber extends RefinedType[Int, ErrorNumberConstraint]

modules/db-doobie/src/main/scala/pillars/db_doobie/db.scala

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -113,28 +113,28 @@ object StatementCacheConfig:
113113
given Codec[StatementCacheConfig] = Codec.AsObject.derivedConfigured
114114
end StatementCacheConfig
115115

116-
private type SizeConstraint = DescribedAs[Positive0, "Size must be positive or zero"]
116+
private type SizeConstraint = Positive0 `DescribedAs` "Size must be positive or zero"
117117
type Size = Size.T
118118

119119
object Size extends RefinedType[Int, SizeConstraint]
120120

121121
private type JdbcUrlConstraint =
122-
DescribedAs[Match["jdbc\\:[^:]+\\:.*"], "Driver class name must in jdbc:<subprotocol>:<subname> format"]
122+
Match["jdbc\\:[^:]+\\:.*"] `DescribedAs` "Driver class name must in jdbc:<subprotocol>:<subname> format"
123123
type JdbcUrl = JdbcUrl.T
124124

125125
object JdbcUrl extends RefinedType[String, JdbcUrlConstraint]
126126

127-
private type DriverClassNameConstraint = DescribedAs[Not[Blank], "Driver class name must not be blank"]
127+
private type DriverClassNameConstraint = Not[Blank] `DescribedAs` "Driver class name must not be blank"
128128
type DriverClassName = DriverClassName.T
129129

130130
object DriverClassName extends RefinedType[String, DriverClassNameConstraint]
131131

132-
private type DatabaseNameConstraint = DescribedAs[Not[Blank], "Database name must not be blank"]
132+
private type DatabaseNameConstraint = Not[Blank] `DescribedAs` "Database name must not be blank"
133133
type DatabaseName = DatabaseName.T
134134

135135
object DatabaseName extends RefinedType[String, DatabaseNameConstraint]
136136

137-
private type DatabaseSchemaConstraint = DescribedAs[Not[Blank], "Database schema must not be blank"]
137+
private type DatabaseSchemaConstraint = Not[Blank] `DescribedAs` "Database schema must not be blank"
138138
type DatabaseSchema = DatabaseSchema.T
139139

140140
object DatabaseSchema extends RefinedType[String, DatabaseSchemaConstraint]:
@@ -150,23 +150,23 @@ type DatabaseTable = DatabaseTable.T
150150

151151
object DatabaseTable extends RefinedType[String, DatabaseTableConstraint]
152152

153-
private type DatabaseUserConstraint = DescribedAs[Not[Blank], "Database user must not be blank"]
153+
private type DatabaseUserConstraint = Not[Blank] `DescribedAs` "Database user must not be blank"
154154
type DatabaseUser = DatabaseUser.T
155155

156156
object DatabaseUser extends RefinedType[String, DatabaseUserConstraint]
157157

158-
private type DatabasePasswordConstraint = DescribedAs[Not[Blank], "Database password must not be blank"]
158+
private type DatabasePasswordConstraint = Not[Blank] `DescribedAs` "Database password must not be blank"
159159
type DatabasePassword = DatabasePassword.T
160160

161161
object DatabasePassword extends RefinedType[String, DatabasePasswordConstraint]
162162

163-
private type PoolSizeConstraint = DescribedAs[GreaterEqual[1], "Pool size must be greater or equal to 1"]
163+
private type PoolSizeConstraint = GreaterEqual[1] `DescribedAs` "Pool size must be greater or equal to 1"
164164
type PoolSize = PoolSize.T
165165

166166
object PoolSize extends RefinedType[Int, PoolSizeConstraint]
167167

168168
private type VersionConstraint =
169-
DescribedAs[Not[Blank] & Match["^(\\d+\\.\\d+\\.\\d+)$"], "Schema version must be in the form of X.Y.Z"]
169+
Not[Blank] & Match["^(\\d+\\.\\d+\\.\\d+)$"] `DescribedAs` "Schema version must be in the form of X.Y.Z"
170170
type SchemaVersion = SchemaVersion.T
171171

172172
object SchemaVersion extends RefinedType[String, Not[Blank] & Match["^(\\d+\\.\\d+\\.\\d+)$"]]

modules/db-migration/src/main/scala/pillars/db/migrations/migrations.scala

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -100,38 +100,36 @@ object MigrationConfig:
100100
given Codec[MigrationConfig] = Codec.AsObject.derivedConfigured
101101

102102
private type JdbcUrlConstraint =
103-
DescribedAs[Match["jdbc\\:[^:]+\\:.*"], "JDBC URL must be in jdbc:<subprotocol>:<subname> format"]
103+
Match["jdbc\\:[^:]+\\:.*"] `DescribedAs` "JDBC URL must be in jdbc:<subprotocol>:<subname> format"
104104
type JdbcUrl = JdbcUrl.T
105105

106106
object JdbcUrl extends RefinedType[String, JdbcUrlConstraint]
107107

108-
private type DatabaseNameConstraint = DescribedAs[Not[Blank], "Database name must not be blank"]
108+
private type DatabaseNameConstraint = Not[Blank] `DescribedAs` "Database name must not be blank"
109109
type DatabaseName = DatabaseName.T
110110

111111
object DatabaseName extends RefinedType[String, DatabaseNameConstraint]
112112

113-
private type DatabaseSchemaConstraint = DescribedAs[Not[Blank], "Database schema must not be blank"]
113+
private type DatabaseSchemaConstraint = Not[Blank] `DescribedAs` "Database schema must not be blank"
114114
type DatabaseSchema = DatabaseSchema.T
115115

116116
object DatabaseSchema extends RefinedType[String, DatabaseSchemaConstraint]:
117117
val public: DatabaseSchema = DatabaseSchema("public")
118118
val pillars: DatabaseSchema = DatabaseSchema("pillars")
119119

120120
private type DatabaseTableConstraint =
121-
DescribedAs[
122-
(Not[Blank] & Match["""^[a-zA-Z_][0-9a-zA-Z$_]{0,63}$"""]),
123-
"Database table must be at most 64 characters (letter, digit, dollar sign or underscore) long and start with a letter or an underscore"
124-
]
125-
type DatabaseTable = DatabaseTable.T
121+
(Not[Blank] & Match["""^[a-zA-Z_][0-9a-zA-Z$_]{0,63}$"""]) `DescribedAs` "Database table must be at most 64 characters (letter, digit, dollar sign or underscore) long and start with a letter or an underscore"
122+
123+
type DatabaseTable = DatabaseTable.T
126124

127125
object DatabaseTable extends RefinedType[String, DatabaseTableConstraint]
128126

129-
private type DatabaseUserConstraint = DescribedAs[Not[Blank], "Database user must not be blank"]
127+
private type DatabaseUserConstraint = Not[Blank] `DescribedAs` "Database user must not be blank"
130128
type DatabaseUser = DatabaseUser.T
131129

132130
object DatabaseUser extends RefinedType[String, DatabaseUserConstraint]
133131

134-
private type DatabasePasswordConstraint = DescribedAs[Not[Blank], "Database password must not be blank"]
132+
private type DatabasePasswordConstraint = Not[Blank] `DescribedAs` "Database password must not be blank"
135133
type DatabasePassword = DatabasePassword.T
136134

137135
object DatabasePassword extends RefinedType[String, DatabasePasswordConstraint]

modules/db-skunk/src/main/scala/pillars/db/db.scala

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -156,12 +156,12 @@ final case class LoggingConfig(
156156
timing: Boolean = false
157157
)
158158

159-
private type DatabaseNameConstraint = DescribedAs[Not[Blank], "Database name must not be blank"]
159+
private type DatabaseNameConstraint = Not[Blank] `DescribedAs` "Database name must not be blank"
160160
type DatabaseName = DatabaseName.T
161161

162162
object DatabaseName extends RefinedType[String, DatabaseNameConstraint]
163163

164-
private type DatabaseSchemaConstraint = DescribedAs[Not[Blank], "Database schema must not be blank"]
164+
private type DatabaseSchemaConstraint = Not[Blank] `DescribedAs` "Database schema must not be blank"
165165
type DatabaseSchema = DatabaseSchema.T
166166

167167
object DatabaseSchema extends RefinedType[String, DatabaseSchemaConstraint]:
@@ -177,23 +177,23 @@ type DatabaseTable = DatabaseTable.T
177177

178178
object DatabaseTable extends RefinedType[String, DatabaseTableConstraint]
179179

180-
private type DatabaseUserConstraint = DescribedAs[Not[Blank], "Database user must not be blank"]
180+
private type DatabaseUserConstraint = Not[Blank] `DescribedAs` "Database user must not be blank"
181181
type DatabaseUser = DatabaseUser.T
182182

183183
object DatabaseUser extends RefinedType[String, DatabaseUserConstraint]
184184

185-
private type DatabasePasswordConstraint = DescribedAs[Not[Blank], "Database password must not be blank"]
185+
private type DatabasePasswordConstraint = Not[Blank] `DescribedAs` "Database password must not be blank"
186186
type DatabasePassword = DatabasePassword.T
187187

188188
object DatabasePassword extends RefinedType[String, DatabasePasswordConstraint]
189189

190-
private type PoolSizeConstraint = DescribedAs[GreaterEqual[1], "Pool size must be greater or equal to 1"]
190+
private type PoolSizeConstraint = GreaterEqual[1] `DescribedAs` "Pool size must be greater or equal to 1"
191191
type PoolSize = PoolSize.T
192192

193193
object PoolSize extends RefinedType[Int, PoolSizeConstraint]
194194

195195
private type VersionConstraint =
196-
DescribedAs[Not[Blank] & Match["^(\\d+\\.\\d+\\.\\d+)$"], "Schema version must be in the form of X.Y.Z"]
196+
Not[Blank] & Match["^(\\d+\\.\\d+\\.\\d+)$"] `DescribedAs` "Schema version must be in the form of X.Y.Z"
197197
type SchemaVersion = SchemaVersion.T
198198

199199
object SchemaVersion extends RefinedType[String, Not[Blank] & Match["^(\\d+\\.\\d+\\.\\d+)$"]]

modules/example/src/main/scala/example/model.scala

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,31 +7,31 @@ package example
77
import io.github.iltotore.iron.*
88
import io.github.iltotore.iron.constraint.all.*
99

10-
type UsernameConstraint = DescribedAs[(MinLength[3] & MaxLength[20]), "Must be between 3 and 20 characters"]
10+
type UsernameConstraint = (MinLength[3] & MaxLength[20]) `DescribedAs` "Must be between 3 and 20 characters"
1111
type Username = Username.T
1212
object Username extends RefinedType[String, UsernameConstraint]
1313

14-
type AgeConstraint = DescribedAs[(Positive & Less[150]), "Must be a positive number less than 150"]
14+
type AgeConstraint = (Positive & Less[150]) `DescribedAs` "Must be a positive number less than 150"
1515
type Age = Age.T
1616
object Age extends RefinedType[Int, AgeConstraint]
1717

18-
type FirstNameConstraint = DescribedAs[Not[Blank], "First name must not be blank"]
18+
type FirstNameConstraint = Not[Blank] `DescribedAs` "First name must not be blank"
1919
type FirstName = FirstName.T
2020
object FirstName extends RefinedType[String, FirstNameConstraint]
2121

22-
type LastNameConstraint = DescribedAs[Not[Blank], "Last name must not be blank"]
22+
type LastNameConstraint = Not[Blank] `DescribedAs` "Last name must not be blank"
2323
type LastName = LastName.T
2424
object LastName extends RefinedType[String, LastNameConstraint]
2525

26-
type EmailConstraint = DescribedAs[Match[".*@.*\\..*"], "Must be a valid e-mail"]
26+
type EmailConstraint = Match[".*@.*\\..*"] `DescribedAs` "Must be a valid e-mail"
2727
type Email = Email.T
2828
object Email extends RefinedType[String, EmailConstraint]
2929

30-
type CountryNameConstraint = DescribedAs[Not[Blank], "Country name must not be blank"]
30+
type CountryNameConstraint = Not[Blank] `DescribedAs` "Country name must not be blank"
3131
type CountryName = CountryName.T
3232
object CountryName extends RefinedType[String, CountryNameConstraint]
3333

34-
type CountryCodeConstraint = DescribedAs[(FixedLength[2] & LettersUpperCase), "Country name must not be blank"]
34+
type CountryCodeConstraint = (FixedLength[2] & LettersUpperCase) `DescribedAs` "Country name must not be blank"
3535
type CountryCode = CountryCode.T
3636
object CountryCode extends RefinedType[String, CountryCodeConstraint]
3737

modules/flags/src/main/scala/pillars/flags/model.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import io.github.iltotore.iron.constraint.all.*
1010
final case class FeatureFlag(name: Flag, status: Status):
1111
def isEnabled: Boolean = status.isEnabled
1212

13-
private type FlagConstraint = DescribedAs[Not[Blank], "Name must not be blank"]
13+
private type FlagConstraint = Not[Blank] `DescribedAs` "Name must not be blank"
1414
type Flag = Flag.T
1515

1616
object Flag extends RefinedType[String, FlagConstraint]

modules/rabbitmq-fs2/src/main/scala/pillars/rabbitmq/fs2/rabbitmq.scala

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -117,18 +117,18 @@ object RabbitMQConfig:
117117
)
118118
end RabbitMQConfig
119119

120-
private type RabbitMQVirtualHostConstraint = DescribedAs[Not[Blank], "RabbitMQ virtual host must not be blank"]
120+
private type RabbitMQVirtualHostConstraint = Not[Blank] `DescribedAs` "RabbitMQ virtual host must not be blank"
121121
type RabbitMQVirtualHost = RabbitMQVirtualHost.T
122122
object RabbitMQVirtualHost extends RefinedType[String, RabbitMQVirtualHostConstraint]
123123

124-
private type RabbitMQUserConstraint = DescribedAs[Not[Blank], "RabbitMQ user must not be blank"]
124+
private type RabbitMQUserConstraint = Not[Blank] `DescribedAs` "RabbitMQ user must not be blank"
125125
type RabbitMQUser = RabbitMQUser.T
126126
object RabbitMQUser extends RefinedType[String, RabbitMQUserConstraint]
127127

128-
private type RabbitMQPasswordConstraint = DescribedAs[Not[Blank], "RabbitMQ password must not be blank"]
128+
private type RabbitMQPasswordConstraint = Not[Blank] `DescribedAs` "RabbitMQ password must not be blank"
129129
type RabbitMQPassword = RabbitMQPassword.T
130130
object RabbitMQPassword extends RefinedType[String, RabbitMQPasswordConstraint]
131131

132-
private type RabbitMQConnectionNameConstraint = DescribedAs[Not[Blank], "RabbitMQ connection name must not be blank"]
132+
private type RabbitMQConnectionNameConstraint = Not[Blank] `DescribedAs` "RabbitMQ connection name must not be blank"
133133
type RabbitMQConnectionName = RabbitMQConnectionName.T
134134
object RabbitMQConnectionName extends RefinedType[String, RabbitMQConnectionNameConstraint]

modules/redis-rediculous/src/main/scala/pillars/redis_rediculous/redis.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -93,12 +93,12 @@ object RedisConfig:
9393
given Codec[RedisConfig] = Codec.AsObject.derivedConfigured
9494
end RedisConfig
9595

96-
private type RedisUserConstraint = DescribedAs[Not[Blank], "Redis user must not be blank"]
96+
private type RedisUserConstraint = Not[Blank] `DescribedAs` "Redis user must not be blank"
9797
type RedisUser = RedisUser.T
9898

9999
object RedisUser extends RefinedType[String, RedisUserConstraint]
100100

101-
private type RedisPasswordConstraint = DescribedAs[Not[Blank], "Redis password must not be blank"]
101+
private type RedisPasswordConstraint = Not[Blank] `DescribedAs` "Redis password must not be blank"
102102
type RedisPassword = RedisPassword.T
103103

104104
object RedisPassword extends RefinedType[String, RedisPasswordConstraint]

0 commit comments

Comments
 (0)