jinxapi_github/v1_1_4/request/
repos_compare_commits.rs1fn url_string(
48 base_url: &str,
49 p_owner: &str,
50 p_repo: &str,
51 p_basehead: &str,
52 q_page: ::std::option::Option<i64>,
53 q_per_page: ::std::option::Option<i64>,
54) -> Result<String, crate::v1_1_4::ApiError> {
55 let trimmed = if base_url.is_empty() {
56 "https://api.github.com"
57 } else {
58 base_url.trim_end_matches('/')
59 };
60 let mut url = String::with_capacity(trimmed.len() + 36);
61 url.push_str(trimmed);
62 url.push_str("/repos/");
63 ::querylizer::Simple::extend(&mut url, &p_owner, false, &::querylizer::encode_path)?;
64 url.push('/');
65 ::querylizer::Simple::extend(&mut url, &p_repo, false, &::querylizer::encode_path)?;
66 url.push_str("/compare/");
67 ::querylizer::Simple::extend(&mut url, &p_basehead, false, &::querylizer::encode_path)?;
68 let mut prefix = '?';
69 if let Some(value) = &q_page {
70 url.push(::std::mem::replace(&mut prefix, '&'));
71 ::querylizer::Form::extend(&mut url, "page", value, false, &::querylizer::encode_query)?;
72 }
73 if let Some(value) = &q_per_page {
74 url.push(::std::mem::replace(&mut prefix, '&'));
75 ::querylizer::Form::extend(&mut url, "per_page", value, false, &::querylizer::encode_query)?;
76 }
77 Ok(url)
78}
79
80#[cfg(feature = "hyper")]
81#[allow(clippy::too_many_arguments)]
82pub fn http_builder(
83 base_url: &str,
84 p_owner: &str,
85 p_repo: &str,
86 p_basehead: &str,
87 q_page: ::std::option::Option<i64>,
88 q_per_page: ::std::option::Option<i64>,
89 h_user_agent: &str,
90 h_accept: ::std::option::Option<&str>,
91) -> Result<::http::request::Builder, crate::v1_1_4::ApiError> {
92 let url = url_string(
93 base_url,
94 p_owner,
95 p_repo,
96 p_basehead,
97 q_page,
98 q_per_page,
99 )?;
100 let mut builder = ::http::request::Request::get(url);
101 builder = builder.header(
102 "User-Agent",
103 &::querylizer::Simple::to_string(&h_user_agent, false, &::querylizer::passthrough)?
104 );
105 if let Some(value) = &h_accept {
106 builder = builder.header(
107 "Accept",
108 &::querylizer::Simple::to_string(value, false, &::querylizer::passthrough)?
109 );
110 }
111 Ok(builder)
112}
113
114#[cfg(feature = "hyper")]
115#[inline]
116pub fn hyper_request(
117 builder: ::http::request::Builder,
118) -> Result<::http::request::Request<::hyper::Body>, crate::v1_1_4::ApiError> {
119 Ok(builder.body(::hyper::Body::empty())?)
120}
121
122#[cfg(feature = "reqwest")]
123#[allow(clippy::too_many_arguments)]
124pub fn reqwest_builder(
125 base_url: &str,
126 p_owner: &str,
127 p_repo: &str,
128 p_basehead: &str,
129 q_page: ::std::option::Option<i64>,
130 q_per_page: ::std::option::Option<i64>,
131 h_user_agent: &str,
132 h_accept: ::std::option::Option<&str>,
133) -> Result<::reqwest::Request, crate::v1_1_4::ApiError> {
134 let url = url_string(
135 base_url,
136 p_owner,
137 p_repo,
138 p_basehead,
139 q_page,
140 q_per_page,
141 )?;
142 let reqwest_url = ::reqwest::Url::parse(&url)?;
143 let mut request = ::reqwest::Request::new(::reqwest::Method::GET, reqwest_url);
144 let headers = request.headers_mut();
145 headers.append(
146 "User-Agent",
147 ::querylizer::Simple::to_string(&h_user_agent, false, &::querylizer::passthrough)?.try_into()?
148 );
149 if let Some(value) = &h_accept {
150 headers.append(
151 "Accept",
152 ::querylizer::Simple::to_string(value, false, &::querylizer::passthrough)?.try_into()?
153 );
154 }
155 Ok(request)
156}
157
158#[cfg(feature = "reqwest")]
159#[inline(always)]
160pub fn reqwest_request(
161 builder: ::reqwest::Request,
162) -> Result<::reqwest::Request, crate::v1_1_4::ApiError>
163{
164 Ok(builder)
165}
166
167#[cfg(feature = "reqwest-blocking")]
168#[allow(clippy::too_many_arguments)]
169pub fn reqwest_blocking_builder(
170 base_url: &str,
171 p_owner: &str,
172 p_repo: &str,
173 p_basehead: &str,
174 q_page: ::std::option::Option<i64>,
175 q_per_page: ::std::option::Option<i64>,
176 h_user_agent: &str,
177 h_accept: ::std::option::Option<&str>,
178) -> Result<::reqwest::blocking::Request, crate::v1_1_4::ApiError> {
179 let url = url_string(
180 base_url,
181 p_owner,
182 p_repo,
183 p_basehead,
184 q_page,
185 q_per_page,
186 )?;
187 let reqwest_url = ::reqwest::Url::parse(&url)?;
188 let mut request = ::reqwest::blocking::Request::new(::reqwest::Method::GET, reqwest_url);
189 let headers = request.headers_mut();
190 headers.append(
191 "User-Agent",
192 ::querylizer::Simple::to_string(&h_user_agent, false, &::querylizer::passthrough)?.try_into()?
193 );
194 if let Some(value) = &h_accept {
195 headers.append(
196 "Accept",
197 ::querylizer::Simple::to_string(value, false, &::querylizer::passthrough)?.try_into()?
198 );
199 }
200 Ok(request)
201}
202
203#[cfg(feature = "reqwest-blocking")]
204#[inline(always)]
205pub fn reqwest_blocking_request(
206 builder: ::reqwest::blocking::Request,
207) -> Result<::reqwest::blocking::Request, crate::v1_1_4::ApiError>
208{
209 Ok(builder)
210}