Skip to content

Commit

Permalink
Merge pull request #1 from rster2002/async
Browse files Browse the repository at this point in the history
Async implementations for readers
  • Loading branch information
rster2002 authored May 11, 2024
2 parents b12ec80 + 030c4f5 commit d99c144
Show file tree
Hide file tree
Showing 20 changed files with 743 additions and 203 deletions.
130 changes: 130 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 5 additions & 1 deletion ed-journals/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,11 @@ kinded = "0.3.0"
lazy_static = "1.4.0"
log = "0.4.21"
notify = "6.1.1"
tokio = { version = "1.37.0", features = ["fs", "sync", "io-util"], default-features = false, optional = true }
async-mutex = { version = "1.4.0", optional = true }

[features]
default = []
default = ["async"]
blocking = []
async = ["dep:tokio", "dep:async-mutex"]
strict = []
21 changes: 13 additions & 8 deletions ed-journals/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,25 +10,30 @@
//! Currently, the only files that are parsed are the log files. Models for working `Market.json`
//! and `Status.json` etc will be added in the future. Best place to get started is the [JournalDir]
//! model.
pub use models::journal_event_content;
pub use models::journal_dir::JournalDir;
pub use models::journal_dir::JournalDirError;
pub use models::journal_file::JournalFile;
pub use models::journal_file::JournalFileError;

pub use models::journal_event::JournalEvent;
pub use models::journal_event_content;
pub use models::journal_event_content::JournalEventContent;
pub use models::journal_event_content::JournalEventContentKind;
pub use models::journal_file::JournalFile;
pub use models::journal_file_reader::JournalFileReader;
pub use models::live_journal_dir_reader::LiveJournalDirReader;
pub use models::live_journal_file_reader::LiveJournalFileReader;

#[cfg(feature = "blocking")]
pub use models::blocking;

#[cfg(feature = "async")]
pub use models::r#async;

mod macros;
mod models;

#[cfg(test)]
mod tests {
use std::env::current_dir;
use crate::blocking::JournalDir;

use crate::models::journal_dir::JournalDir;
use crate::models::journal_event_content::JournalEventContent;

#[test]
Expand All @@ -49,7 +54,7 @@ mod tests {
let mut entry_count = 0;

for journal in &logs {
let reader = journal.create_reader().unwrap();
let reader = journal.create_blocking_reader().unwrap();

for entry in reader {
entry_count += 1;
Expand Down
11 changes: 7 additions & 4 deletions ed-journals/src/models.rs
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
pub mod journal_dir;
pub mod journal_event;

/// This module contains detailed structs and enums for the different kinds of events that are read
/// from a [JournalFile].
pub mod journal_event_content;
pub mod journal_dir;
pub mod journal_file;
pub mod journal_file_reader;
pub mod live_journal_dir_reader;
pub mod live_journal_file_reader;

#[cfg(feature = "blocking")]
pub mod blocking;

#[cfg(feature = "async")]
pub mod r#async;
11 changes: 11 additions & 0 deletions ed-journals/src/models/async.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
mod journal_file_reader;
// mod live_journal_dir_reader;
mod live_journal_file_reader;
mod live_journal_dir_reader;

pub use journal_file_reader::JournalFileReader;
pub use journal_file_reader::JournalFileReaderError;
pub use live_journal_file_reader::LiveJournalFileReader;
pub use live_journal_file_reader::LiveJournalFileReaderError;
pub use live_journal_dir_reader::LiveJournalDirReader;
pub use live_journal_dir_reader::LiveJournalDirReaderError;
Loading

0 comments on commit d99c144

Please sign in to comment.