pub struct HashSchema { /* private fields */ }Expand description
Schema for a Redis hash, mapping field names to types.
Defines how Redis hash fields should be converted to Arrow/Polars columns.
Each field is mapped to a RedisType which determines parsing behavior.
§Example
ⓘ
use polars_redis::{HashSchema, RedisType};
let schema = HashSchema::new(vec![
("name".to_string(), RedisType::Utf8),
("age".to_string(), RedisType::Int64),
("score".to_string(), RedisType::Float64),
("active".to_string(), RedisType::Boolean),
])
.with_key(true)
.with_key_column_name("_key")
.with_ttl(true);§Optional Metadata Columns
- Key column: Include the Redis key as a column (default: true, name: “_key”)
- TTL column: Include the key’s TTL in seconds (default: false, name: “_ttl”)
- Row index: Include a row number column (default: false, name: “_index”)
Implementations§
Source§impl HashSchema
impl HashSchema
Sourcepub fn new(field_types: Vec<(String, RedisType)>) -> Self
pub fn new(field_types: Vec<(String, RedisType)>) -> Self
Create a new HashSchema from a list of (field_name, type) pairs.
Sourcepub fn with_key_column_name(self, name: impl Into<String>) -> Self
pub fn with_key_column_name(self, name: impl Into<String>) -> Self
Set the name of the key column.
Sourcepub fn with_ttl_column_name(self, name: impl Into<String>) -> Self
pub fn with_ttl_column_name(self, name: impl Into<String>) -> Self
Set the name of the TTL column.
Sourcepub fn with_row_index(self, include: bool) -> Self
pub fn with_row_index(self, include: bool) -> Self
Set whether to include the row index as a column.
Sourcepub fn with_row_index_column_name(self, name: impl Into<String>) -> Self
pub fn with_row_index_column_name(self, name: impl Into<String>) -> Self
Set the name of the row index column.
Sourcepub fn field_type(&self, name: &str) -> Option<RedisType>
pub fn field_type(&self, name: &str) -> Option<RedisType>
Get the type for a field.
Sourcepub fn include_key(&self) -> bool
pub fn include_key(&self) -> bool
Whether the key column is included.
Sourcepub fn key_column_name(&self) -> &str
pub fn key_column_name(&self) -> &str
Get the key column name.
Sourcepub fn include_ttl(&self) -> bool
pub fn include_ttl(&self) -> bool
Whether the TTL column is included.
Sourcepub fn ttl_column_name(&self) -> &str
pub fn ttl_column_name(&self) -> &str
Get the TTL column name.
Sourcepub fn include_row_index(&self) -> bool
pub fn include_row_index(&self) -> bool
Whether the row index column is included.
Sourcepub fn row_index_column_name(&self) -> &str
pub fn row_index_column_name(&self) -> &str
Get the row index column name.
Sourcepub fn to_arrow_schema(&self) -> Schema
pub fn to_arrow_schema(&self) -> Schema
Convert to Arrow Schema.
Trait Implementations§
Source§impl Clone for HashSchema
impl Clone for HashSchema
Source§fn clone(&self) -> HashSchema
fn clone(&self) -> HashSchema
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for HashSchema
impl Debug for HashSchema
Auto Trait Implementations§
impl Freeze for HashSchema
impl RefUnwindSafe for HashSchema
impl Send for HashSchema
impl Sync for HashSchema
impl Unpin for HashSchema
impl UnwindSafe for HashSchema
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more