small improvements

This commit is contained in:
nora 2024-05-29 21:08:23 +02:00
parent bf7835162d
commit 8394e27f60
5 changed files with 19 additions and 18 deletions

View file

@ -40,27 +40,23 @@ impl CorsClient {
} }
pub async fn get_hugo(&self) -> Result<String> { pub async fn get_hugo(&self) -> Result<String> {
Ok(do_request(self.client.get(format!("{URL}/hugo"))) do_request(self.client.get(format!("{URL}/hugo")))
.await? .await?
.text() .text()
.await .await
.wrap_err("failed to get hugo")?) .wrap_err("failed to get hugo")
} }
pub async fn get_class(&self, id: &str) -> Result<dto::Class> { pub async fn get_class(&self, id: &str) -> Result<dto::Class> {
Ok(
do_request_body(self.client.get(format!("{URL}/classes/{id}"))) do_request_body(self.client.get(format!("{URL}/classes/{id}")))
.await .await
.wrap_err("failed to get class")?, .wrap_err("failed to get class")
)
} }
pub async fn post_class(&self, class: &dto::Class) -> Result<dto::Class> { pub async fn post_class(&self, class: &dto::Class) -> Result<dto::Class> {
Ok(
do_request_body(self.client.post(format!("{URL}/classes")).json(class)) do_request_body(self.client.post(format!("{URL}/classes")).json(class))
.await .await
.wrap_err("creating class")?, .wrap_err("creating class")
)
} }
} }

View file

@ -66,13 +66,13 @@ pub trait EyreExt<T> {
impl<T> EyreExt<T> for Result<T, eyre::Report> { impl<T> EyreExt<T> for Result<T, eyre::Report> {
fn eyre_to_tf(self) -> DResult<T> { fn eyre_to_tf(self) -> DResult<T> {
self.map_err(|e| Diagnostic::error_string(format!("{:?}", e)).into()) self.map_err(|e| Diagnostic::error_string(format!("{e:?}")).into())
} }
} }
impl<E: std::error::Error + std::fmt::Debug> From<E> for Diagnostic { impl<E: std::error::Error + std::fmt::Debug> From<E> for Diagnostic {
fn from(value: E) -> Self { fn from(value: E) -> Self {
Self::error_string(format!("{:?}", value)) Self::error_string(format!("{value:?}"))
} }
} }
impl<E: std::error::Error + std::fmt::Debug> From<E> for Diagnostics { impl<E: std::error::Error + std::fmt::Debug> From<E> for Diagnostics {

View file

@ -17,7 +17,7 @@ pub fn generate_cert() -> Result<(tonic::transport::Identity, rcgen::Certificate
]; ];
params.is_ca = IsCa::Ca(rcgen::BasicConstraints::Unconstrained); params.is_ca = IsCa::Ca(rcgen::BasicConstraints::Unconstrained);
params.not_before = time::OffsetDateTime::now_utc().saturating_add(Duration::seconds(-30)); params.not_before = time::OffsetDateTime::now_utc().saturating_add(Duration::seconds(-30));
params.not_after = time::OffsetDateTime::now_utc().saturating_add(Duration::seconds(262980)); params.not_after = time::OffsetDateTime::now_utc().saturating_add(Duration::seconds(262_980));
let mut dn = DistinguishedName::new(); let mut dn = DistinguishedName::new();
dn.push(DnType::OrganizationName, "HashiCorp"); dn.push(DnType::OrganizationName, "HashiCorp");
dn.push(DnType::CommonName, "localhost"); dn.push(DnType::CommonName, "localhost");

View file

@ -1,10 +1,12 @@
#![allow(unused_variables, unused_imports)] #![allow(unused_variables, unused_imports)]
#[allow(warnings)]
pub mod tfplugin6 { pub mod tfplugin6 {
tonic::include_proto!("tfplugin6"); tonic::include_proto!("tfplugin6");
} }
#[allow(warnings)]
pub mod plugin { pub mod plugin {
tonic::include_proto!("plugin"); tonic::include_proto!("plugin");
} }

View file

@ -75,7 +75,7 @@ impl Type {
if !optionals.is_empty() { if !optionals.is_empty() {
parts.push(Value::Array( parts.push(Value::Array(
optionals.iter().map(|v| Value::String(v.clone())).collect(), optionals.iter().map(|v| Value::String(v.clone())).collect(),
)) ));
} }
Value::Array(parts) Value::Array(parts)
@ -302,7 +302,7 @@ impl Value {
rd.set_position(start); rd.set_position(start);
// TODO: Handle unknown values better // TODO: Handle unknown values better
// https://github.com/hashicorp/terraform/blob/main/docs/plugin-protocol/object-wire-format.md#schemaattribute-mapping-rules-for-messagepack // https://github.com/hashicorp/terraform/blob/main/docs/plugin-protocol/object-wire-format.md#schemaattribute-mapping-rules-for-messagepack
if let Ok(_) = mp::read_fixext1(rd) { if mp::read_fixext1(rd).is_ok() {
return Ok(Value::Unknown); return Ok(Value::Unknown);
} }
rd.set_position(start); rd.set_position(start);
@ -388,7 +388,10 @@ impl Value {
for expected_attr in attrs.keys() { for expected_attr in attrs.keys() {
let is_ok = elems.contains_key(expected_attr); let is_ok = elems.contains_key(expected_attr);
if !is_ok && !optionals.contains(expected_attr) { if !is_ok && !optionals.contains(expected_attr) {
return Err(Diagnostic::error_string(format!("expected attribute '{expected_attr}', but it was not present")).into()) return Err(Diagnostic::error_string(format!(
"expected attribute '{expected_attr}', but it was not present"
))
.into());
} }
} }