Skip to content

Commit 34ef4b5

Browse files
chore: add ProjectTelemetryConfig variant to ResourceTypeBeta enum
1 parent 49d5d57 commit 34ef4b5

File tree

1 file changed

+30
-4
lines changed

1 file changed

+30
-4
lines changed

common/src/resource.rs

Lines changed: 30 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -182,6 +182,10 @@ pub enum ResourceTypeBeta {
182182
#[strum(to_string = "database::aws_rds::mariadb")]
183183
#[serde(rename = "database::aws_rds::mariadb")]
184184
DatabaseAwsRdsMariaDB,
185+
/// Project-specific telemetry configuration data
186+
#[strum(to_string = "project::telemetry::config")]
187+
#[serde(rename = "project::telemetry::config")]
188+
ProjectTelemetryConfig,
185189
/// (Will probably be removed)
186190
#[strum(to_string = "secrets")]
187191
#[serde(rename = "secrets")]
@@ -250,7 +254,7 @@ impl Display for Type {
250254
// this can be removed when deployers AND r-r no longer hold resources in sqlite state
251255
#[cfg(feature = "sqlx")]
252256
mod _sqlx {
253-
use std::{borrow::Cow, str::FromStr};
257+
use std::{borrow::Cow, boxed::Box, str::FromStr};
254258

255259
use sqlx::{
256260
postgres::{PgArgumentBuffer, PgValueRef},
@@ -285,16 +289,16 @@ mod _sqlx {
285289
}
286290
}
287291

288-
impl<DB: sqlx::Database> sqlx::Type<DB> for ResourceState
292+
impl<DB: Database> sqlx::Type<DB> for ResourceState
289293
where
290294
str: sqlx::Type<DB>,
291295
{
292-
fn type_info() -> <DB as sqlx::Database>::TypeInfo {
296+
fn type_info() -> <DB as Database>::TypeInfo {
293297
<str as sqlx::Type<DB>>::type_info()
294298
}
295299
}
296300

297-
impl sqlx::Encode<'_, sqlx::Postgres> for ResourceState {
301+
impl sqlx::Encode<'_, Postgres> for ResourceState {
298302
fn encode_by_ref(&self, buf: &mut PgArgumentBuffer) -> sqlx::encode::IsNull {
299303
#[allow(clippy::needless_borrows_for_generic_args)]
300304
<&str as sqlx::Encode<Postgres>>::encode(&self.to_string(), buf)
@@ -309,6 +313,28 @@ mod _sqlx {
309313
Ok(state)
310314
}
311315
}
316+
317+
impl<DB: Database> sqlx::Type<DB> for super::ResourceTypeBeta
318+
where
319+
str: sqlx::Type<DB>,
320+
{
321+
fn type_info() -> <DB as Database>::TypeInfo {
322+
<str as sqlx::Type<DB>>::type_info()
323+
}
324+
}
325+
326+
impl sqlx::Encode<'_, Postgres> for super::ResourceTypeBeta {
327+
fn encode_by_ref(&self, args: &mut PgArgumentBuffer) -> sqlx::encode::IsNull {
328+
<&str as sqlx::Encode<Postgres>>::encode(self.to_string().as_str(), args)
329+
}
330+
}
331+
332+
impl<'r> sqlx::Decode<'r, Postgres> for super::ResourceTypeBeta {
333+
fn decode(value: PgValueRef<'r>) -> Result<Self, sqlx::error::BoxDynError> {
334+
<&str as sqlx::Decode<Postgres>>::decode(value)
335+
.and_then(|value| super::ResourceTypeBeta::from_str(value).map_err(Into::into))
336+
}
337+
}
312338
}
313339

314340
#[cfg(test)]

0 commit comments

Comments
 (0)