Skip to content

Commit

Permalink
lint
Browse files Browse the repository at this point in the history
  • Loading branch information
adriangb committed Jan 26, 2025
1 parent e2231ce commit a21bbc7
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 36 deletions.
18 changes: 8 additions & 10 deletions arrow-json/src/writer/encoder.rs
Original file line number Diff line number Diff line change
Expand Up @@ -166,7 +166,7 @@ fn make_encoder_impl<'a>(

let encoder = StructArrayEncoder{
encoders,
nulls: array.nulls().clone(),
nulls: array.nulls(),
explicit_nulls: options.explicit_nulls,
};
Box::new(encoder) as _
Expand Down Expand Up @@ -332,7 +332,10 @@ struct PrimitiveEncoder<N: PrimitiveEncode> {
}

impl<N: PrimitiveEncode> PrimitiveEncoder<N> {
fn new<P: ArrowPrimitiveType<Native = N>>(array: &PrimitiveArray<P>, nulls: Option<NullBuffer>) -> Self {
fn new<P: ArrowPrimitiveType<Native = N>>(
array: &PrimitiveArray<P>,
nulls: Option<NullBuffer>,
) -> Self {
Self {
values: array.values().clone(),
nulls,
Expand Down Expand Up @@ -418,7 +421,7 @@ impl<'a, O: OffsetSizeTrait> ListEncoder<'a, O> {
options: &EncoderOptions,
) -> Result<Self, ArrowError> {
let nulls = array.logical_nulls();
let encoder= make_encoder_impl(array.values().as_ref(), options)?;
let encoder = make_encoder_impl(array.values().as_ref(), options)?;
Ok(Self {
offsets: array.offsets().clone(),
encoder,
Expand Down Expand Up @@ -537,20 +540,15 @@ impl<K: ArrowDictionaryKeyType> Encoder for DictionaryEncoder<'_, K> {
}
}



/// A newtype wrapper around [`ArrayFormatter`] to keep our usage of it private and not implement `Encoder` for the public type
struct JsonArrayFormatter<'a> {
formatter: ArrayFormatter<'a>,
nulls: Option<&'a NullBuffer>,
}

impl <'a> JsonArrayFormatter<'a> {
impl<'a> JsonArrayFormatter<'a> {
fn new(formatter: ArrayFormatter<'a>, nulls: Option<&'a NullBuffer>) -> Self {
Self {
formatter,
nulls,
}
Self { formatter, nulls }
}
}

Expand Down
46 changes: 20 additions & 26 deletions arrow-json/src/writer/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1986,7 +1986,9 @@ mod tests {
match &self.array[idx] {
None => out.extend_from_slice(b"null"),
Some(UnionValue::Int32(v)) => out.extend_from_slice(v.to_string().as_bytes()),
Some(UnionValue::String(v)) => out.extend_from_slice(format!("\"{}\"", v).as_bytes()),
Some(UnionValue::String(v)) => {
out.extend_from_slice(format!("\"{}\"", v).as_bytes())
}
}
}

Expand Down Expand Up @@ -2023,35 +2025,28 @@ mod tests {
_ => return Ok(None),
}
}
let (_, type_ids, _, buffers) = array
.as_union()
.clone()
.into_parts();
let (_, type_ids, _, buffers) = array.as_union().clone().into_parts();
let mut values = Vec::with_capacity(type_ids.len());
for idx in 0..type_ids.len() {
let type_id = type_ids[idx];
let field = &fields[type_id as usize];
let value = match field.data_type() {
DataType::Null => None,
DataType::Int32 => Some(
UnionValue::Int32(
buffers[type_id as usize]
.as_any()
.downcast_ref::<Int32Array>()
.unwrap()
.value(idx),
)
),
DataType::Utf8 => Some(
UnionValue::String(
buffers[type_id as usize]
.as_any()
.downcast_ref::<StringArray>()
.unwrap()
.value(idx)
.to_string(),
)
),
DataType::Int32 => Some(UnionValue::Int32(
buffers[type_id as usize]
.as_any()
.downcast_ref::<Int32Array>()
.unwrap()
.value(idx),
)),
DataType::Utf8 => Some(UnionValue::String(
buffers[type_id as usize]
.as_any()
.downcast_ref::<StringArray>()
.unwrap()
.value(idx)
.to_string(),
)),
_ => unreachable!(),
};
values.push(value);
Expand Down Expand Up @@ -2238,8 +2233,7 @@ mod tests {
&self,
array: &'a dyn Array,
_options: &EncoderOptions,
) -> Result<Option<Box<dyn Encoder + 'a>>, ArrowError>
{
) -> Result<Option<Box<dyn Encoder + 'a>>, ArrowError> {
match array.data_type() {
DataType::Binary => {
let array = array.as_any().downcast_ref::<BinaryArray>().unwrap();
Expand Down

0 comments on commit a21bbc7

Please sign in to comment.