export function enum{{className nativeType}}FromRequest(name: string, value: any): {{nativeType}} {
	if (typeof value !== 'string' || value === undefined || value === null) {
		throw `Invalid type for ${name}: expected string got ${typeof value}`
	}

	{{#each enumValues}}
	if (value === {{{literalValue}}}) {
		return {{../nativeType}}.{{name}}
	}
	{{/each}}

	throw `Unexpected enum value for {{nativeType}}: ${value}`
}

export function enum{{className nativeType}}ToResponse(name: string, value: {{nativeType}}): {{nativeType}} {
	if (typeof value !== 'string' || value === undefined || value === null) {
		throw `Invalid type for ${name}: expected string got ${typeof value}`
	}

	{{#each enumValues}}
	if (value === {{{literalValue}}}) {
		return {{../nativeType}}.{{name}}
	}
	{{/each}}

	throw `Unexpected enum value for {{nativeType}}: ${value}`
}
