Skip to content

Commit 7964c37

Browse files
authored
Replace svix-lib-rust template with rust example template (#85)
1 parent be91d49 commit 7964c37

10 files changed

+15
-181
lines changed

templates/svix-lib-rust/api_resource.rs.jinja templates/rust/api_resource.rs.jinja

+11-30
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,13 @@
1+
{#
2+
This example template is a simplified version of the one we use in
3+
https://github.com/svix/svix-webhooks
4+
5+
It currently depends on the (non-generated) `crate::error::Result`,
6+
`crate::Configuration` and `crate::request::Request`
7+
8+
A PR to make it more generic (e.g. use reqwest directly) would be welcome
9+
-#}
10+
// this file is @generated
111
{% set resource_type_name = resource.name | to_upper_camel_case -%}
212

313
use crate::{
@@ -8,25 +18,12 @@ use crate::{
818

919
{% for op in resource.operations -%}
1020
{% if op | has_query_or_header_params %}
11-
{% if not op | has_required_query_or_header_params -%}
12-
#[derive(Default)]
13-
{% endif -%}
1421
pub struct {{ resource_type_name }}{{ op.name | to_upper_camel_case }}Options {
1522
{% for p in op.query_params -%}
16-
{% if p.type.is_datetime() -%}
17-
{% set ty = "String" -%}
18-
{% else -%}
19-
{% set ty = p.type.to_rust() -%}
20-
{% endif -%}
23+
{% set ty = p.type.to_rust() -%}
2124
{% if not p.required %}{% set ty %}Option<{{ ty }}>{% endset %}{% endif %}
2225
{% if p.description is defined -%}
2326
{{ p.description | to_doc_comment(style="rust") }}
24-
{# we currently use String for date-time params, for backwards compat -#}
25-
{# document the format so it's not _that_ awkward -#}
26-
{% if p.type.is_datetime() -%}
27-
///
28-
/// RFC3339 date string.
29-
{% endif -%}
3027
{% endif -%}
3128
pub {{ p.name | to_snake_case }}: {{ ty }},
3229
{% endfor -%}
@@ -95,11 +92,6 @@ impl<'a> {{ resource_type_name }}<'a> {
9592
;
9693
{% endif -%}
9794

98-
{% if has_header_params -%}
99-
{# unpack PostOptions -#}
100-
let PostOptions { idempotency_key } = options.unwrap_or_default();
101-
{% endif -%}
102-
10395
{# make the request #}
10496
crate::request::Request::new(http1::Method::{{ op.method | upper }}, "{{ op.path }}")
10597

@@ -131,15 +123,4 @@ impl<'a> {{ resource_type_name }}<'a> {
131123
.execute(self.cfg)
132124
.await
133125
}
134-
135-
{% set extra_path -%}
136-
api_extra/{{ resource.name | to_snake_case }}_{{ op.name | to_snake_case }}.rs
137-
{%- endset -%}
138-
{% include extra_path ignore missing %}
139-
{% endfor %}
140126
}
141-
142-
{% set extra_path -%}
143-
api_extra/{{ resource.name | to_snake_case }}.rs
144-
{%- endset -%}
145-
{% include extra_path ignore missing %}

templates/svix-lib-rust/api_summary.rs.jinja templates/rust/api_summary.rs.jinja

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
// this file is @generated
12
{% for resource in api.resources -%}
23
mod {{ resource.name | to_snake_case }};
34
{% endfor %}
@@ -8,7 +9,7 @@ pub use self::{
89
{{ resource.name | to_snake_case }}::{
910
{{ resource_type_name }},
1011
{% for op in resource.operations -%}
11-
{% if op.query_params | length > 0 -%}
12+
{% if op | has_query_or_header_params -%}
1213
{{ resource_type_name }}{{ op.name | to_upper_camel_case }}Options,
1314
{% endif -%}
1415
{% endfor -%}

templates/svix-lib-rust/types/string_enum.rs.jinja templates/rust/types/string_enum.rs.jinja

+1-6
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,9 @@ use std::fmt;
33
use serde::{Deserialize, Serialize};
44

55
{{ doc_comment }}
6-
#[derive(
7-
Clone, Copy, Debug, Default, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize,
8-
)]
6+
#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash, Serialize, Deserialize)]
97
pub enum {{ type.name | to_upper_camel_case }} {
108
{% for value in type.values -%}
11-
{% if loop.first -%}
12-
#[default]
13-
{% endif -%}
149
#[serde(rename = "{{ value }}")]
1510
{{ value | to_upper_camel_case }},
1611
{% endfor -%}

templates/svix-lib-rust/types/struct.rs.jinja templates/rust/types/struct.rs.jinja

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ use super::{
1010
};
1111

1212
{{ doc_comment }}
13-
#[derive(Clone, Debug, Default, PartialEq, Deserialize, Serialize)]
13+
#[derive(Clone, Debug, Deserialize, Serialize)]
1414
pub struct {{ type.name | to_upper_camel_case }} {
1515
{% for field in type.fields %}
1616
{% if field.description is defined -%}

templates/svix-lib-rust/api_extra/application_create.rs

-16
This file was deleted.

templates/svix-lib-rust/api_extra/message.rs

-33
This file was deleted.

templates/svix-lib-rust/api_extra/message_attempt_list_attempted_messages.rs

-40
This file was deleted.

templates/svix-lib-rust/api_extra/message_expunge_content.rs

-54
This file was deleted.

0 commit comments

Comments
 (0)