mirror of
https://github.com/aljazceru/turso.git
synced 2025-12-17 08:34:19 +01:00
add random generation in simulator IO
This commit is contained in:
@@ -3,7 +3,7 @@ use std::{
|
|||||||
sync::Arc,
|
sync::Arc,
|
||||||
};
|
};
|
||||||
|
|
||||||
use rand::{RngCore, SeedableRng};
|
use rand::{Rng, RngCore, SeedableRng};
|
||||||
use rand_chacha::ChaCha8Rng;
|
use rand_chacha::ChaCha8Rng;
|
||||||
use turso_core::{Clock, IO, Instant, OpenFlags, PlatformIO, Result};
|
use turso_core::{Clock, IO, Instant, OpenFlags, PlatformIO, Result};
|
||||||
|
|
||||||
@@ -136,6 +136,10 @@ impl IO for SimulatorIO {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn generate_random_number(&self) -> i64 {
|
fn generate_random_number(&self) -> i64 {
|
||||||
self.rng.borrow_mut().next_u64() as i64
|
self.rng.borrow_mut().random()
|
||||||
|
}
|
||||||
|
|
||||||
|
fn fill_bytes(&self, dest: &mut [u8]) {
|
||||||
|
self.rng.borrow_mut().fill_bytes(dest);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ use std::sync::Arc;
|
|||||||
|
|
||||||
use indexmap::IndexMap;
|
use indexmap::IndexMap;
|
||||||
use parking_lot::Mutex;
|
use parking_lot::Mutex;
|
||||||
use rand::{RngCore, SeedableRng};
|
use rand::{Rng, RngCore, SeedableRng};
|
||||||
use rand_chacha::ChaCha8Rng;
|
use rand_chacha::ChaCha8Rng;
|
||||||
use turso_core::{Clock, Completion, IO, Instant, OpenFlags, Result};
|
use turso_core::{Clock, Completion, IO, Instant, OpenFlags, Result};
|
||||||
|
|
||||||
@@ -269,7 +269,11 @@ impl IO for MemorySimIO {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn generate_random_number(&self) -> i64 {
|
fn generate_random_number(&self) -> i64 {
|
||||||
self.rng.borrow_mut().next_u64() as i64
|
self.rng.borrow_mut().random()
|
||||||
|
}
|
||||||
|
|
||||||
|
fn fill_bytes(&self, dest: &mut [u8]) {
|
||||||
|
self.rng.borrow_mut().fill_bytes(dest);
|
||||||
}
|
}
|
||||||
|
|
||||||
fn remove_file(&self, path: &str) -> Result<()> {
|
fn remove_file(&self, path: &str) -> Result<()> {
|
||||||
|
|||||||
@@ -142,6 +142,11 @@ impl IO for SimulatorIO {
|
|||||||
let mut rng = self.rng.lock().unwrap();
|
let mut rng = self.rng.lock().unwrap();
|
||||||
rng.next_u64() as i64
|
rng.next_u64() as i64
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn fill_bytes(&self, dest: &mut [u8]) {
|
||||||
|
let mut rng = self.rng.lock().unwrap();
|
||||||
|
rng.fill_bytes(dest);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const MAX_FILE_SIZE: usize = 1 << 33; // 8 GiB
|
const MAX_FILE_SIZE: usize = 1 << 33; // 8 GiB
|
||||||
|
|||||||
Reference in New Issue
Block a user