The Symbol type in Crystal is pretty barebones and could represent any symbol that has been written into any Crystal code in the app, but PQ::ConnInfo#sslmode accepts a very low-cardinality set of values, which seems like a great use case for an enum type.
Changing types can have backwards-compatibility implications, but changing the type of PQ::ConnInfo#sslmode should have a very small impact, if any at all. There are very few use cases for PQ at all (a Postgres connector, which we've already got covered by this shard, and maybe building a custom backend?) and for PQ::ConnInfo specifically I can't imagine any outside this shard.
The
Symboltype in Crystal is pretty barebones and could represent any symbol that has been written into any Crystal code in the app, butPQ::ConnInfo#sslmodeaccepts a very low-cardinality set of values, which seems like a great use case for anenumtype.Changing types can have backwards-compatibility implications, but changing the type of
PQ::ConnInfo#sslmodeshould have a very small impact, if any at all. There are very few use cases forPQat all (a Postgres connector, which we've already got covered by this shard, and maybe building a custom backend?) and forPQ::ConnInfospecifically I can't imagine any outside this shard.