Coverage Report

Created: 2025-08-26 07:03

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/Users/andrewlamb/Software/arrow-rs/arrow-avro/src/lib.rs
Line
Count
Source
1
// Licensed to the Apache Software Foundation (ASF) under one
2
// or more contributor license agreements.  See the NOTICE file
3
// distributed with this work for additional information
4
// regarding copyright ownership.  The ASF licenses this file
5
// to you under the Apache License, Version 2.0 (the
6
// "License"); you may not use this file except in compliance
7
// with the License.  You may obtain a copy of the License at
8
//
9
//   http://www.apache.org/licenses/LICENSE-2.0
10
//
11
// Unless required by applicable law or agreed to in writing,
12
// software distributed under the License is distributed on an
13
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
// KIND, either express or implied.  See the License for the
15
// specific language governing permissions and limitations
16
// under the License.
17
18
//! Convert data to / from the [Apache Arrow] memory format and [Apache Avro]
19
//!
20
//! [Apache Arrow]: https://arrow.apache.org
21
//! [Apache Avro]: https://avro.apache.org/
22
23
#![doc(
24
    html_logo_url = "https://arrow.apache.org/img/arrow-logo_chevrons_black-txt_white-bg.svg",
25
    html_favicon_url = "https://arrow.apache.org/img/arrow-logo_chevrons_black-txt_transparent-bg.svg"
26
)]
27
#![cfg_attr(docsrs, feature(doc_auto_cfg))]
28
#![warn(missing_docs)]
29
#![allow(unused)] // Temporary
30
31
/// Core functionality for reading Avro data into Arrow arrays
32
///
33
/// Implements the primary reader interface and record decoding logic.
34
pub mod reader;
35
36
/// Core functionality for writing Arrow arrays as Avro data
37
///
38
/// Implements the primary writer interface and record encoding logic.
39
pub mod writer;
40
41
/// Avro schema parsing and representation
42
///
43
/// Provides types for parsing and representing Avro schema definitions.
44
pub mod schema;
45
46
/// Compression codec implementations for Avro
47
///
48
/// Provides support for various compression algorithms used in Avro files,
49
/// including Deflate, Snappy, and ZStandard.
50
pub mod compression;
51
52
/// Data type conversions between Avro and Arrow types
53
///
54
/// This module contains the necessary types and functions to convert between
55
/// Avro data types and Arrow data types.
56
pub mod codec;
57
58
/// Extension trait for AvroField to add Utf8View support
59
///
60
/// This trait adds methods for working with Utf8View support to the AvroField struct.
61
pub trait AvroFieldExt {
62
    /// Returns a new field with Utf8View support enabled for string data
63
    ///
64
    /// This will convert any string data to use StringViewArray instead of StringArray.
65
    fn with_utf8view(&self) -> Self;
66
}
67
68
impl AvroFieldExt for codec::AvroField {
69
0
    fn with_utf8view(&self) -> Self {
70
0
        codec::AvroField::with_utf8view(self)
71
0
    }
72
}
73
74
#[cfg(test)]
75
mod test_util {
76
50
    pub fn arrow_test_data(path: &str) -> String {
77
50
        match std::env::var("ARROW_TEST_DATA") {
78
0
            Ok(dir) => format!("{dir}/{path}"),
79
50
            Err(_) => format!("../testing/data/{path}"),
80
        }
81
50
    }
82
}