Closes: #35
BindStyledParameterWithOptions unconditionally unescaped values by
parameter location, but routers differ in whether they deliver path
parameters raw or already decoded. For frameworks that decode (e.g.
Echo), this double-decoded values containing literal percent signs:
"discount%20" arrived as "discount " and "15%off" failed binding
entirely.
BindStyledParameterOptions gains ValueIsUnescaped: when true, the value
has already been decoded (typically by the router) and binds verbatim.
The zero value preserves the historical unescape-by-location behavior,
so all existing callers — including the deprecated BindStyledParameter
and BindStyledParameterWithLocation entry points and current generated
code — are unaffected. Generated server wrappers will set the flag to
match what their framework actually delivers, tracked in
oapi-codegen/oapi-codegen#2455.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Closes: #35
BindStyledParameterWithOptions unconditionally unescaped values by parameter location, but routers differ in whether they deliver path parameters raw or already decoded. For frameworks that decode (e.g. Echo), this double-decoded values containing literal percent signs: "discount%20" arrived as "discount " and "15%off" failed binding entirely.
BindStyledParameterOptions gains ValueIsUnescaped: when true, the value has already been decoded (typically by the router) and binds verbatim. The zero value preserves the historical unescape-by-location behavior, so all existing callers — including the deprecated BindStyledParameter and BindStyledParameterWithLocation entry points and current generated code — are unaffected. Generated server wrappers will set the flag to match what their framework actually delivers, tracked in oapi-codegen/oapi-codegen#2455.