Skip to content

Commit af7ca09

Browse files
Merge pull request #14 from theseus-rs/add-examples
chore: add examples
2 parents 936485d + 84da9e9 commit af7ca09

File tree

13 files changed

+186
-17
lines changed

13 files changed

+186
-17
lines changed

Cargo.lock

Lines changed: 42 additions & 13 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[workspace]
22
default-members = ["postgresql_archive", "postgresql_embedded"]
3-
members = ["postgresql_archive", "postgresql_embedded"]
3+
members = ["examples/*", "postgresql_archive", "postgresql_embedded"]
44
resolver = "2"
55

66
[workspace.package]

examples/archive_async/Cargo.toml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
[package]
2+
edition.workspace = true
3+
name = "archive_async"
4+
publish = false
5+
license.workspace = true
6+
version.workspace = true
7+
8+
[dependencies]
9+
postgresql_archive = { path = "../../postgresql_archive" }
10+
tempfile = { workspace = true }
11+
tokio = { workspace = true }

examples/archive_async/src/main.rs

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
use postgresql_archive::{extract, get_archive, Result, LATEST};
2+
3+
#[tokio::main]
4+
async fn main() -> Result<()> {
5+
let (archive_version, archive, _hash) = get_archive(&LATEST).await?;
6+
let out_dir = tempfile::tempdir()?.into_path();
7+
extract(&archive, &out_dir).await?;
8+
println!(
9+
"PostgreSQL {} extracted to {}",
10+
archive_version,
11+
out_dir.to_string_lossy()
12+
);
13+
Ok(())
14+
}
15+
16+
#[cfg(test)]
17+
mod test {
18+
use super::*;
19+
20+
#[test]
21+
fn test_main() -> Result<()> {
22+
main()
23+
}
24+
}

examples/archive_sync/Cargo.toml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
[package]
2+
edition.workspace = true
3+
name = "archive_sync"
4+
publish = false
5+
license.workspace = true
6+
version.workspace = true
7+
8+
[dependencies]
9+
postgresql_archive = { path = "../../postgresql_archive", features = ["blocking"] }
10+
tempfile = { workspace = true }

examples/archive_sync/src/main.rs

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
use postgresql_archive::blocking::{extract, get_archive};
2+
use postgresql_archive::{Result, LATEST};
3+
4+
fn main() -> Result<()> {
5+
let (archive_version, archive, _hash) = get_archive(&LATEST)?;
6+
let out_dir = tempfile::tempdir()?.into_path();
7+
extract(&archive, &out_dir)?;
8+
println!(
9+
"PostgreSQL {} extracted to {}",
10+
archive_version,
11+
out_dir.to_string_lossy()
12+
);
13+
Ok(())
14+
}
15+
16+
#[cfg(test)]
17+
mod test {
18+
use super::*;
19+
20+
#[test]
21+
fn test_main() -> Result<()> {
22+
main()
23+
}
24+
}

examples/embedded_async/Cargo.toml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
[package]
2+
edition.workspace = true
3+
name = "embedded_async"
4+
publish = false
5+
license.workspace = true
6+
version.workspace = true
7+
8+
[dependencies]
9+
postgresql_embedded = { path = "../../postgresql_embedded" }
10+
tokio = { workspace = true }
11+

examples/embedded_async/src/main.rs

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
use postgresql_embedded::{PostgreSQL, Result};
2+
3+
#[tokio::main]
4+
async fn main() -> Result<()> {
5+
let mut postgresql = PostgreSQL::default();
6+
postgresql.setup().await?;
7+
postgresql.start().await?;
8+
9+
let database_name = "test";
10+
postgresql.create_database(database_name).await?;
11+
postgresql.database_exists(database_name).await?;
12+
postgresql.drop_database(database_name).await?;
13+
14+
postgresql.stop().await
15+
}
16+
17+
#[cfg(test)]
18+
mod test {
19+
use super::*;
20+
21+
#[test]
22+
fn test_main() -> Result<()> {
23+
main()
24+
}
25+
}

examples/embedded_sync/Cargo.toml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
[package]
2+
edition.workspace = true
3+
name = "embedded_sync"
4+
publish = false
5+
license.workspace = true
6+
version.workspace = true
7+
8+
[dependencies]
9+
postgresql_embedded = { path = "../../postgresql_embedded", features = ["blocking"] }

examples/embedded_sync/src/main.rs

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
use postgresql_embedded::blocking::PostgreSQL;
2+
use postgresql_embedded::Result;
3+
4+
fn main() -> Result<()> {
5+
let mut postgresql = PostgreSQL::default();
6+
postgresql.setup()?;
7+
postgresql.start()?;
8+
9+
let database_name = "test";
10+
postgresql.create_database(database_name)?;
11+
postgresql.database_exists(database_name)?;
12+
postgresql.drop_database(database_name)?;
13+
14+
postgresql.stop()
15+
}
16+
17+
#[cfg(test)]
18+
mod test {
19+
use super::*;
20+
21+
#[test]
22+
fn test_main() -> Result<()> {
23+
main()
24+
}
25+
}

0 commit comments

Comments
 (0)