diff --git a/arrow-buffer/src/buffer/boolean.rs b/arrow-buffer/src/buffer/boolean.rs index aaa86832f692..c8e5144c14cb 100644 --- a/arrow-buffer/src/buffer/boolean.rs +++ b/arrow-buffer/src/buffer/boolean.rs @@ -25,6 +25,14 @@ use crate::{ use std::ops::{BitAnd, BitOr, BitXor, Not}; /// A slice-able [`Buffer`] containing bit-packed booleans +/// +/// `BooleanBuffer`s can be creating using [`BooleanBufferBuilder`] +/// +/// # See Also +/// +/// * [`NullBuffer`] for representing null values in Arrow arrays +/// +/// [`NullBuffer`]: crate::NullBuffer #[derive(Debug, Clone, Eq)] pub struct BooleanBuffer { buffer: Buffer, diff --git a/arrow-buffer/src/buffer/null.rs b/arrow-buffer/src/buffer/null.rs index ec12b885eb5a..a178b3101b4e 100644 --- a/arrow-buffer/src/buffer/null.rs +++ b/arrow-buffer/src/buffer/null.rs @@ -19,13 +19,16 @@ use crate::bit_iterator::{BitIndexIterator, BitIterator, BitSliceIterator}; use crate::buffer::BooleanBuffer; use crate::{Buffer, MutableBuffer}; -/// A [`BooleanBuffer`] used to encode validity for arrow arrays +/// A [`BooleanBuffer`] used to encode validity for Arrow arrays /// -/// As per the [Arrow specification], array validity is encoded in a packed bitmask with a +/// In the [Arrow specification], array validity is encoded in a packed bitmask with a /// `true` value indicating the corresponding slot is not null, and `false` indicating /// that it is null. /// +/// `NullBuffer`s can be creating using [`NullBufferBuilder`] +/// /// [Arrow specification]: https://arrow.apache.org/docs/format/Columnar.html#validity-bitmaps +/// [`NullBufferBuilder`]: crate::NullBufferBuilder #[derive(Debug, Clone, Eq, PartialEq)] pub struct NullBuffer { buffer: BooleanBuffer, @@ -49,7 +52,8 @@ impl NullBuffer { /// Create a new [`NullBuffer`] of length `len` where all values are valid /// - /// Note: it is more efficient to not set the null buffer if it is known to be all valid + /// Note: it is more efficient to not set the null buffer if it is known to + /// be all valid (aka all values are not null) pub fn new_valid(len: usize) -> Self { Self { buffer: BooleanBuffer::new_set(len), diff --git a/arrow-buffer/src/builder/boolean.rs b/arrow-buffer/src/builder/boolean.rs index ca178ae5ce4e..67b306dd8cea 100644 --- a/arrow-buffer/src/builder/boolean.rs +++ b/arrow-buffer/src/builder/boolean.rs @@ -19,6 +19,12 @@ use crate::{bit_mask, bit_util, BooleanBuffer, Buffer, MutableBuffer}; use std::ops::Range; /// Builder for [`BooleanBuffer`] +/// +/// # See Also +/// +/// * [`NullBuffer`] for building [`BooleanBuffer`]s for representing nulls +/// +/// [`NullBuffer`]: crate::NullBuffer #[derive(Debug)] pub struct BooleanBufferBuilder { buffer: MutableBuffer, diff --git a/arrow-buffer/src/builder/null.rs b/arrow-buffer/src/builder/null.rs index 298b479e87df..ddbca46f7182 100644 --- a/arrow-buffer/src/builder/null.rs +++ b/arrow-buffer/src/builder/null.rs @@ -17,12 +17,16 @@ use crate::{BooleanBufferBuilder, MutableBuffer, NullBuffer}; -/// Builder for creating the null bit buffer. +/// Builder for creating [`NullBuffer`] +/// +/// # Performance /// /// This builder only materializes the buffer when we append `false`. /// If you only append `true`s to the builder, what you get will be /// `None` when calling [`finish`](#method.finish). -/// This optimization is **very** important for the performance. +/// +/// This optimization is **very** important for the performance as it avoids +/// allocating memory for the null buffer when there are no nulls. #[derive(Debug)] pub struct NullBufferBuilder { bitmap_builder: Option, diff --git a/object_store/src/aws/builder.rs b/object_store/src/aws/builder.rs index d29fa782e8ff..29b2eefa8021 100644 --- a/object_store/src/aws/builder.rs +++ b/object_store/src/aws/builder.rs @@ -427,7 +427,11 @@ impl AmazonS3Builder { /// Fill the [`AmazonS3Builder`] with regular AWS environment variables /// - /// Variables extracted from environment: + /// All environment variables starting with `AWS_` will be evaluated. Names must + /// match acceptable input to [`AmazonS3ConfigKey::from_str`]. Only upper-case environment + /// variables are accepted. + /// + /// Some examples of variables extracted from environment: /// * `AWS_ACCESS_KEY_ID` -> access_key_id /// * `AWS_SECRET_ACCESS_KEY` -> secret_access_key /// * `AWS_DEFAULT_REGION` -> region @@ -435,6 +439,7 @@ impl AmazonS3Builder { /// * `AWS_SESSION_TOKEN` -> token /// * `AWS_CONTAINER_CREDENTIALS_RELATIVE_URI` -> /// * `AWS_ALLOW_HTTP` -> set to "true" to permit HTTP connections without TLS + /// * `AWS_REQUEST_PAYER` -> set to "true" to permit operations on requester-pays buckets. /// # Example /// ``` /// use object_store::aws::AmazonS3Builder;