...
This commit is contained in:
parent
7925f545bb
commit
f4296b3261
@ -1,5 +1,5 @@
|
|||||||
use herodb::db::{DB, DBBuilder};
|
use herodb::db::{DB, DBBuilder};
|
||||||
use herodb::models::circle::{Circle, Member, Name, Wallet, Asset, Role, Record, RecordType};
|
use herodb::models::circle::{Circle, Member, Name, Wallet, Role, Record, RecordType};
|
||||||
use std::path::Path;
|
use std::path::Path;
|
||||||
|
|
||||||
fn main() -> Result<(), Box<dyn std::error::Error>> {
|
fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||||
@ -107,26 +107,26 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
|
|||||||
// Retrieve and display all data
|
// Retrieve and display all data
|
||||||
println!("\nRetrieving data from database:");
|
println!("\nRetrieving data from database:");
|
||||||
|
|
||||||
let circles = db.list_circles()?;
|
let circles = db.list::<Circle>()?;
|
||||||
println!("Circles: {:#?}", circles);
|
println!("Circles: {:#?}", circles);
|
||||||
|
|
||||||
let members = db.list_members()?;
|
let members = db.list::<Member>()?;
|
||||||
println!("Members: {:#?}", members);
|
println!("Members: {:#?}", members);
|
||||||
|
|
||||||
let names = db.list_names()?;
|
let names = db.list::<Name>()?;
|
||||||
println!("Names: {:#?}", names);
|
println!("Names: {:#?}", names);
|
||||||
|
|
||||||
let wallets = db.list_wallets()?;
|
let wallets = db.list::<Wallet>()?;
|
||||||
println!("Wallets: {:#?}", wallets);
|
println!("Wallets: {:#?}", wallets);
|
||||||
|
|
||||||
// Demonstrate wallet operations
|
// Demonstrate wallet operations
|
||||||
println!("\nDemonstrating wallet operations:");
|
println!("\nDemonstrating wallet operations:");
|
||||||
|
|
||||||
let mut alice_wallet = db.get_wallet(1)?;
|
let mut alice_wallet = db.get::<Wallet>(1)?;
|
||||||
println!("Alice's wallet before transfer: {:?}", alice_wallet);
|
println!("Alice's wallet before transfer: {:?}", alice_wallet);
|
||||||
println!("Alice's wallet total value: {}", alice_wallet.total_value());
|
println!("Alice's wallet total value: {}", alice_wallet.total_value());
|
||||||
|
|
||||||
let mut bob_wallet = db.get_wallet(2)?;
|
let mut bob_wallet = db.get::<Wallet>(2)?;
|
||||||
println!("Bob's wallet before transfer: {:?}", bob_wallet);
|
println!("Bob's wallet before transfer: {:?}", bob_wallet);
|
||||||
println!("Bob's wallet total value: {}", bob_wallet.total_value());
|
println!("Bob's wallet total value: {}", bob_wallet.total_value());
|
||||||
|
|
||||||
@ -137,11 +137,11 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
|
|||||||
db.set(&alice_wallet)?;
|
db.set(&alice_wallet)?;
|
||||||
db.set(&bob_wallet)?;
|
db.set(&bob_wallet)?;
|
||||||
|
|
||||||
let alice_wallet = db.get_wallet(1)?;
|
let alice_wallet = db.get::<Wallet>(1)?;
|
||||||
println!("Alice's wallet after transfer: {:?}", alice_wallet);
|
println!("Alice's wallet after transfer: {:?}", alice_wallet);
|
||||||
println!("Alice's wallet total value: {}", alice_wallet.total_value());
|
println!("Alice's wallet total value: {}", alice_wallet.total_value());
|
||||||
|
|
||||||
let bob_wallet = db.get_wallet(2)?;
|
let bob_wallet = db.get::<Wallet>(2)?;
|
||||||
println!("Bob's wallet after transfer: {:?}", bob_wallet);
|
println!("Bob's wallet after transfer: {:?}", bob_wallet);
|
||||||
println!("Bob's wallet total value: {}", bob_wallet.total_value());
|
println!("Bob's wallet total value: {}", bob_wallet.total_value());
|
||||||
|
|
||||||
|
@ -1,83 +0,0 @@
|
|||||||
use herodb::db::{DB, DBBuilder, Model};
|
|
||||||
use serde::{Deserialize, Serialize};
|
|
||||||
use chrono::Utc;
|
|
||||||
|
|
||||||
// Define a simple Product model
|
|
||||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
|
||||||
struct SimpleProduct {
|
|
||||||
id: u32,
|
|
||||||
name: String,
|
|
||||||
description: String,
|
|
||||||
price: f64,
|
|
||||||
created_at: chrono::DateTime<Utc>,
|
|
||||||
}
|
|
||||||
|
|
||||||
// Implement the Model trait for SimpleProduct
|
|
||||||
impl Model for SimpleProduct {
|
|
||||||
fn get_id(&self) -> u32 {
|
|
||||||
self.id
|
|
||||||
}
|
|
||||||
|
|
||||||
fn db_prefix() -> &'static str {
|
|
||||||
"simple_product"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fn main() -> Result<(), Box<dyn std::error::Error>> {
|
|
||||||
println!("OurDB Minimal Example");
|
|
||||||
println!("====================\n");
|
|
||||||
|
|
||||||
// Create a temporary directory for the database
|
|
||||||
let db_path = std::env::temp_dir().join("herodb_minimal_example");
|
|
||||||
std::fs::create_dir_all(&db_path)?;
|
|
||||||
|
|
||||||
println!("Creating database at: {}", db_path.display());
|
|
||||||
|
|
||||||
// Create a new database with SimpleProduct model registered
|
|
||||||
let db = DBBuilder::new(db_path.clone())
|
|
||||||
.register_model::<SimpleProduct>()
|
|
||||||
.build()?;
|
|
||||||
|
|
||||||
println!("Database created successfully");
|
|
||||||
|
|
||||||
// Create a product
|
|
||||||
let product = SimpleProduct {
|
|
||||||
id: 1,
|
|
||||||
name: "Test Product".to_string(),
|
|
||||||
description: "A test product for our minimal OurDB example".to_string(),
|
|
||||||
price: 99.99,
|
|
||||||
created_at: Utc::now(),
|
|
||||||
};
|
|
||||||
|
|
||||||
println!("\nCreated product: {}", product.name);
|
|
||||||
println!("Product ID: {}", product.get_id());
|
|
||||||
|
|
||||||
// Insert the product into the database
|
|
||||||
db.set(&product)?;
|
|
||||||
println!("Product saved to database");
|
|
||||||
|
|
||||||
// Retrieve the product from the database
|
|
||||||
let retrieved_product = db.get::<SimpleProduct>(product.get_id())?;
|
|
||||||
println!("\nRetrieved product from database:");
|
|
||||||
println!(" Name: {}", retrieved_product.name);
|
|
||||||
println!(" Description: {}", retrieved_product.description);
|
|
||||||
println!(" Price: ${}", retrieved_product.price);
|
|
||||||
|
|
||||||
// Delete the product
|
|
||||||
db.delete::<SimpleProduct>(product.get_id())?;
|
|
||||||
println!("\nProduct deleted from database");
|
|
||||||
|
|
||||||
// Try to retrieve the deleted product (should fail)
|
|
||||||
match db.get::<SimpleProduct>(product.get_id()) {
|
|
||||||
Ok(_) => println!("Product still exists (unexpected)"),
|
|
||||||
Err(e) => println!("Verified deletion: {}", e),
|
|
||||||
}
|
|
||||||
|
|
||||||
println!("\nExample completed successfully!");
|
|
||||||
|
|
||||||
// Clean up
|
|
||||||
std::fs::remove_dir_all(&db_path)?;
|
|
||||||
println!("Cleaned up database directory");
|
|
||||||
|
|
||||||
Ok(())
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user