[backend]
name = "csharp-npgsql"
language = "csharp"
file_extension = "cs"
engine = "postgresql"
description = "C# code generation targeting Npgsql with PostgreSQL"
[types.scalars]
bool = "bool"
int16 = "short"
int32 = "int"
int64 = "long"
float32 = "float"
float64 = "double"
string = "string"
bytes = "byte[]"
uuid = "Guid"
decimal = "decimal"
date = "DateOnly"
time = "TimeOnly"
time_tz = "TimeOnly"
datetime = "DateTime"
datetime_tz = "DateTimeOffset"
interval = "TimeSpan"
json = "string"
inet = "System.Net.IPAddress"
[types.containers]
array = "List<{T}>"
nullable = "{T}?"
range = "NpgsqlTypes.NpgsqlRange<{T}>"
json_typed = "{T}"
[naming]
struct_case = "PascalCase"
fn_case = "PascalCase"
enum_variant_case = "PascalCase"
row_suffix = "Row"
sanitize_field_names = true
reserved = [
"abstract",
"as",
"base",
"bool",
"break",
"byte",
"case",
"catch",
"char",
"checked",
"class",
"const",
"continue",
"decimal",
"default",
"delegate",
"do",
"double",
"else",
"enum",
"event",
"explicit",
"extern",
"false",
"finally",
"fixed",
"float",
"for",
"foreach",
"goto",
"if",
"implicit",
"in",
"int",
"interface",
"internal",
"is",
"lock",
"long",
"namespace",
"new",
"null",
"object",
"operator",
"out",
"override",
"params",
"private",
"protected",
"public",
"readonly",
"ref",
"return",
"sbyte",
"sealed",
"short",
"sizeof",
"stackalloc",
"static",
"string",
"struct",
"switch",
"this",
"throw",
"true",
"try",
"typeof",
"uint",
"ulong",
"unchecked",
"unsafe",
"ushort",
"using",
"virtual",
"void",
"volatile",
"while",
]
[imports.rules]