cloudfront_logs/referential/
mod.rs

1//! Line owning variants of the parser types by taking ownership
2//! of the input data and offering a borrowed view into the parsed line.
3//!
4//! This is a "compromise" with regards to fully owned versions of the parser.
5//! Therefore the performance is not as good as such versions, since more memory is needed for partially and fully typed variants.
6//!
7//! This module provides a way to own the parsed log lines, so you can pass them around.
8//!
9//! One use case this can solve is stream processing of CloudFront log files, which are gzipped.
10
11// TODO: elaborate on stream processing and owned/borrowed data
12
13pub mod raw;
14pub mod simple;
15pub mod typed;
16
17#[cfg(feature = "parquet")]
18pub mod parquet;
19
20pub use raw::{
21    UnvalidatedLogline as UnvalidatedRawLogline, ValidatedLogline as ValidatedRawLogline,
22};
23
24pub use simple::{
25    UnvalidatedLogline as UnvalidatedSimpleLogline, ValidatedLogline as ValidatedSimpleLogline,
26};
27
28#[cfg(feature = "chrono")]
29pub use typed::chrono::{
30    UnvalidatedLogline as UnvalidatedChronoLogline, ValidatedLogline as ValidatedChronoLogline,
31};
32
33#[cfg(feature = "time")]
34pub use typed::time::{
35    UnvalidatedLogline as UnvalidatedTimeLogline, ValidatedLogline as ValidatedTimeLogline,
36};
37
38#[cfg(feature = "parquet")]
39pub use parquet::{
40    UnvalidatedLogline as UnvalidatedParquetLogline, ValidatedLogline as ValidatedParquetLogline,
41};