wtx 0.44.3

A collection of different transport implementations and related tools focused primarily on web technologies.
Documentation
#[cfg(feature = "schema-manager-dev")]
use {
  crate::collection::Vector,
  crate::database::{
    FromRecords, Identifier, client::postgres::Postgres, schema_manager::Commands,
    schema_manager::DbMigration, schema_manager::MigrationStatus, schema_manager::SchemaManagement,
    schema_manager::fixed_sql_commands::postgres, schema_manager::integration_tests,
  },
  alloc::string::String,
};

#[cfg(feature = "schema-manager-dev")]
pub(crate) async fn clean_drops_all_objs<'exec, E>(
  (buffer_cmd, _, buffer_idents, _): (
    &mut String,
    &mut Vector<DbMigration>,
    &mut Vector<Identifier>,
    &mut Vector<MigrationStatus>,
  ),
  c: &'exec mut Commands<E>,
  _: integration_tests::AuxTestParams,
) where
  E: SchemaManagement<Database = Postgres<crate::Error>>,
  Identifier: FromRecords<'exec, Postgres<crate::Error>>,
{
  integration_tests::create_foo_table(buffer_cmd, c, "public.").await;
  c.executor_mut().execute_ignored("CREATE SCHEMA bar").await.unwrap();
  integration_tests::create_foo_table(buffer_cmd, c, "bar.").await;
  c.executor_mut().execute_ignored("CREATE DOMAIN integer0 AS INTEGER CONSTRAINT must_be_greater_than_or_equal_to_zero_chk CHECK(VALUE >= 0)").await.unwrap();
  c.executor_mut().execute_ignored("CREATE FUNCTION time_subtype_diff(x time, y time) RETURNS float8 AS 'SELECT EXTRACT(EPOCH FROM (x - y))' LANGUAGE sql STRICT IMMUTABLE").await.unwrap();
  c.executor_mut()
    .execute_ignored("CREATE PROCEDURE something() LANGUAGE SQL AS $$ $$")
    .await
    .unwrap();
  c.executor_mut().execute_ignored("CREATE SEQUENCE serial START 101").await.unwrap();
  c.executor_mut().execute_ignored("CREATE TYPE a_type AS (field INTEGER[31])").await.unwrap();
  c.executor_mut()
    .execute_ignored("CREATE TYPE mood AS ENUM ('sad', 'ok', 'happy')")
    .await
    .unwrap();
  c.executor_mut()
    .execute_ignored("CREATE VIEW view AS SELECT * FROM foo WHERE id = 1")
    .await
    .unwrap();

  postgres::all_elements(
    (buffer_cmd, buffer_idents),
    &mut c.executor_mut(),
    |buffer| {
      assert_eq!(buffer.1.len(), 1);
      buffer.1.clear();
      Ok(())
    },
    |buffer| {
      assert_eq!(buffer.1.len(), 1);
      buffer.1.clear();
      Ok(())
    },
    |buffer| {
      assert_eq!(buffer.1.len(), 1);
      buffer.1.clear();
      Ok(())
    },
    |buffer| {
      assert_eq!(buffer.1.len(), 1);
      buffer.1.clear();
      Ok(())
    },
    |buffer| {
      assert_eq!(buffer.1.len(), 1);
      buffer.1.clear();
      Ok(())
    },
    |buffer| {
      assert_eq!(buffer.1.len(), 1);
      buffer.1.clear();
      Ok(())
    },
    |buffer| {
      assert_eq!(buffer.1.len(), 1);
      buffer.1.clear();
      Ok(())
    },
    |buffer| {
      assert_eq!(buffer.1.len(), 2);
      buffer.1.clear();
      Ok(())
    },
  )
  .await
  .unwrap();

  c.clear().await.unwrap();

  postgres::all_elements(
    (buffer_cmd, buffer_idents),
    c.executor_mut(),
    |buffer| {
      assert_eq!(buffer.1.len(), 0);
      buffer.1.clear();
      Ok(())
    },
    |buffer| {
      assert_eq!(buffer.1.len(), 0);
      buffer.1.clear();
      Ok(())
    },
    |buffer| {
      assert_eq!(buffer.1.len(), 0);
      buffer.1.clear();
      Ok(())
    },
    |buffer| {
      assert_eq!(buffer.1.len(), 0);
      buffer.1.clear();
      Ok(())
    },
    |buffer| {
      assert_eq!(buffer.1.len(), 0);
      buffer.1.clear();
      Ok(())
    },
    |buffer| {
      assert_eq!(buffer.1.len(), 0);
      buffer.1.clear();
      Ok(())
    },
    |buffer| {
      assert_eq!(buffer.1.len(), 0);
      buffer.1.clear();
      Ok(())
    },
    |buffer| {
      assert_eq!(buffer.1.len(), 0);
      buffer.1.clear();
      Ok(())
    },
  )
  .await
  .unwrap();
}