OwnedUnvalidatedParquetLogline

Struct OwnedUnvalidatedParquetLogline 

Source
pub struct OwnedUnvalidatedParquetLogline {
Show 34 fields pub date: NaiveDate, pub time: String, pub datetime: NaiveDateTime, pub x_edge_location: String, pub sc_bytes: u64, pub c_ip: String, pub cs_method: String, pub cs_host: String, pub cs_uri_stem: String, pub sc_status: u16, pub cs_referer: Option<String>, pub cs_user_agent: String, pub cs_uri_query: Option<String>, pub cs_cookie: Option<String>, pub x_edge_result_type: String, pub x_edge_request_id: String, pub x_host_header: String, pub cs_protocol: String, pub cs_bytes: u64, pub time_taken: f64, pub x_forwarded_for: Option<String>, pub ssl_protocol: Option<String>, pub ssl_cipher: Option<String>, pub x_edge_response_result_type: String, pub cs_protocol_version: String, pub fle_status: Option<String>, pub fle_encrypted_fields: Option<u64>, pub c_port: u16, pub time_to_first_byte: f64, pub x_edge_detailed_result_type: String, pub sc_content_type: Option<String>, pub sc_content_len: Option<u64>, pub sc_range_start: Option<i64>, pub sc_range_end: Option<i64>,
}
Available on crate feature parquet only.
Expand description

The unvalidated log line for parquet usage

Most fields are parsed into more meaningful types.

Unlike ValidatedLogline, this variant does not check if the line can be parsed. Use this if you already did a check before creating this struct. A common scenario is that you 1) trust the input data and 2) skipped the comment lines.

Note: This is the only variant which can use the From trait instead of TryFrom, because validation is skipped and the input data does not need to be parsed into other types.

§Panics

Construction can panic if the input is not a valid log line!

§Examples

Use .try_from() or .try_into() to construct an instance, since action can fail.

use cloudfront_logs::{borrowed::parquet::UnvalidatedLogline, types::*};

let line = "2019-12-04	21:02:31	LAX1	392	192.0.2.100	GET	d111111abcdef8.cloudfront.net	/index.html	200	-	Mozilla/5.0%20(Windows%20NT%2010.0;%20Win64;%20x64)%20AppleWebKit/537.36%20(KHTML,%20like%20Gecko)%20Chrome/78.0.3904.108%20Safari/537.36	-	-	Hit	SOX4xwn4XV6Q4rgb7XiVGOHms_BGlTAC4KyHmureZmBNrjGdRLiNIQ==	d111111abcdef8.cloudfront.net	https	23	0.001	-	TLSv1.2	ECDHE-RSA-AES128-GCM-SHA256	Hit	HTTP/2.0	-	-	11040	0.001	Hit	text/html	78	-	-";

let item = UnvalidatedLogline::try_from(line).unwrap();
// alternative:
let item: UnvalidatedLogline<'_> = line.try_into().unwrap();

assert_eq!(item.date, NaiveDate::from_ymd_opt(2019, 12, 4).unwrap());
assert_eq!(item.sc_bytes, 392u64);
assert_eq!(item.cs_protocol, "https");

Fields§

§date: NaiveDate§time: String§datetime: NaiveDateTime§x_edge_location: String§sc_bytes: u64§c_ip: String§cs_method: String§cs_host: String§cs_uri_stem: String§sc_status: u16§cs_referer: Option<String>§cs_user_agent: String§cs_uri_query: Option<String>§cs_cookie: Option<String>§x_edge_result_type: String§x_edge_request_id: String§x_host_header: String§cs_protocol: String§cs_bytes: u64§time_taken: f64§x_forwarded_for: Option<String>§ssl_protocol: Option<String>§ssl_cipher: Option<String>§x_edge_response_result_type: String§cs_protocol_version: String§fle_status: Option<String>§fle_encrypted_fields: Option<u64>§c_port: u16§time_to_first_byte: f64§x_edge_detailed_result_type: String§sc_content_type: Option<String>§sc_content_len: Option<u64>§sc_range_start: Option<i64>§sc_range_end: Option<i64>

Implementations§

Trait Implementations§

Source§

impl Clone for UnvalidatedLogline

Source§

fn clone(&self) -> UnvalidatedLogline

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for UnvalidatedLogline

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl From<UnvalidatedLogline> for ValidatedLogline

Source§

fn from(unvalidated: UnvalidatedLogline) -> Self

Converts to this type from the input type.
Source§

impl From<ValidatedLogline> for UnvalidatedLogline

Source§

fn from(validated: ValidatedLogline) -> Self

Converts to this type from the input type.
Source§

impl PartialEq for UnvalidatedLogline

Source§

fn eq(&self, other: &UnvalidatedLogline) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl RecordWriter<UnvalidatedLogline> for &[UnvalidatedLogline]

Source§

fn write_to_row_group<W: Write + Send>( &self, row_group_writer: &mut SerializedRowGroupWriter<'_, W>, ) -> Result<(), ParquetError>

Writes from self into row_group_writer.
Source§

fn schema(&self) -> Result<TypePtr, ParquetError>

Generated schema used by row_group_writer
Source§

impl TryFrom<&str> for UnvalidatedLogline

Source§

type Error = &'static str

The type returned in the event of a conversion error.
Source§

fn try_from(line: &str) -> Result<Self, Self::Error>

Performs the conversion.
Source§

impl TryFrom<Logline<'_, Unvalidated>> for UnvalidatedLogline

Source§

type Error = &'static str

The type returned in the event of a conversion error.
Source§

fn try_from(raw: UnvalidatedRaw<'_>) -> Result<Self, Self::Error>

Performs the conversion.
Source§

impl TryFrom<Logline<'_, Validated>> for UnvalidatedLogline

Source§

type Error = &'static str

The type returned in the event of a conversion error.
Source§

fn try_from(raw: ValidatedRaw<'_>) -> Result<Self, Self::Error>

Performs the conversion.
Source§

impl StructuralPartialEq for UnvalidatedLogline

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> Allocation for T
where T: RefUnwindSafe + Send + Sync,