in tools/src/main/scala/magnolify/tools/SchemaPrinter.scala [98:118]
private def renderOwnerPrefix(ctx: RenderContext): Doc =
ctx.owner.fold(Doc.empty)(o => Doc.text(o) + Doc.char('.'))
private def renderType(ctx: RenderContext)(s: Schema): Doc = s match {
case Optional(s) =>
Doc.text("Option") + Doc.char('[') + renderType(ctx)(s) + Doc.char(']')
case Repeated(s) =>
Doc.text("List") + Doc.char('[') + renderType(ctx)(s) + Doc.char(']')
case Mapped(k, v) =>
val keyType = renderType(ctx)(k)
val valueType = renderType(ctx)(v)
Doc.text("Map") + Doc.char('[') + keyType + Doc.char(',') + Doc.space + valueType + Doc.char(
']'
)
case Record(name, _, _) =>
renderOwnerPrefix(ctx) + Doc.text(name.getOrElse(toUpperCamel(ctx.field)))
case Primitive.Enum(name, _, _) =>
renderOwnerPrefix(ctx) + Doc.text(name.getOrElse(toUpperCamel(ctx.field)))
case p: Primitive =>
Doc.text(p.toString)
}