You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@arrow.apache.org by su...@apache.org on 2019/04/18 18:34:50 UTC

[arrow] branch master updated: ARROW-5184: [Rust] Broken links and other documentation warnings

This is an automated email from the ASF dual-hosted git repository.

sunchao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/arrow.git


The following commit(s) were added to refs/heads/master by this push:
     new a806508  ARROW-5184: [Rust] Broken links and other documentation warnings
a806508 is described below

commit a8065085f39f4648a2b3c575f2d631fb6bedc277
Author: Jamie Blondin <jb...@gmail.com>
AuthorDate: Thu Apr 18 11:34:39 2019 -0700

    ARROW-5184: [Rust] Broken links and other documentation warnings
    
    Fixed broken documentation links (internal and external) and some warnings due to lack of code blocks.
    
    Author: Jamie Blondin <jb...@gmail.com>
    
    Closes #4172 from jblondin/master and squashes the following commits:
    
    319effd9 <Jamie Blondin> ARROW-5184:  Broken links and other documentation warnings
---
 rust/arrow/src/compute/kernels/arithmetic.rs |  2 +-
 rust/arrow/src/compute/kernels/boolean.rs    |  2 +-
 rust/arrow/src/compute/kernels/comparison.rs |  2 +-
 rust/arrow/src/ipc/gen/Message.rs            |  6 +++---
 rust/arrow/src/ipc/gen/Schema.rs             |  8 ++++----
 rust/arrow/src/ipc/gen/SparseTensor.rs       | 12 +++++++++---
 rust/parquet/src/column/page.rs              |  6 +++---
 rust/parquet/src/compression.rs              |  2 +-
 rust/parquet/src/encodings/decoding.rs       | 12 ++++++------
 rust/parquet/src/file/statistics.rs          |  4 ++--
 rust/parquet/src/record/reader.rs            | 10 +++++-----
 rust/parquet/src/schema/parser.rs            |  4 ++--
 rust/parquet/src/schema/printer.rs           |  6 +++---
 rust/parquet/src/schema/types.rs             | 26 +++++++++++++-------------
 14 files changed, 54 insertions(+), 48 deletions(-)

diff --git a/rust/arrow/src/compute/kernels/arithmetic.rs b/rust/arrow/src/compute/kernels/arithmetic.rs
index 2566002..bd26d44 100644
--- a/rust/arrow/src/compute/kernels/arithmetic.rs
+++ b/rust/arrow/src/compute/kernels/arithmetic.rs
@@ -20,7 +20,7 @@
 //! These kernels can leverage SIMD if available on your system.  Currently no runtime
 //! detection is provided, you should enable the specific SIMD intrinsics using
 //! `RUSTFLAGS="-C target-feature=+avx2"` for example.  See the documentation
-//! [here] (https://doc.rust-lang.org/stable/std/arch/) for more information.
+//! [here](https://doc.rust-lang.org/stable/core/arch/) for more information.
 
 use std::mem;
 use std::ops::{Add, Div, Mul, Sub};
diff --git a/rust/arrow/src/compute/kernels/boolean.rs b/rust/arrow/src/compute/kernels/boolean.rs
index f95d3d6..56f873f 100644
--- a/rust/arrow/src/compute/kernels/boolean.rs
+++ b/rust/arrow/src/compute/kernels/boolean.rs
@@ -20,7 +20,7 @@
 //! These kernels can leverage SIMD if available on your system.  Currently no runtime
 //! detection is provided, you should enable the specific SIMD intrinsics using
 //! `RUSTFLAGS="-C target-feature=+avx2"` for example.  See the documentation
-//! [here] (https://doc.rust-lang.org/stable/std/arch/) for more information.
+//! [here](https://doc.rust-lang.org/stable/core/arch/) for more information.
 
 use std::sync::Arc;
 
diff --git a/rust/arrow/src/compute/kernels/comparison.rs b/rust/arrow/src/compute/kernels/comparison.rs
index 30f76af..2b44bdc 100644
--- a/rust/arrow/src/compute/kernels/comparison.rs
+++ b/rust/arrow/src/compute/kernels/comparison.rs
@@ -20,7 +20,7 @@
 //! These kernels can leverage SIMD if available on your system.  Currently no runtime
 //! detection is provided, you should enable the specific SIMD intrinsics using
 //! `RUSTFLAGS="-C target-feature=+avx2"` for example.  See the documentation
-//! [here] (https://doc.rust-lang.org/stable/std/arch/) for more information.
+//! [here](https://doc.rust-lang.org/stable/core/arch/) for more information.
 
 use std::sync::Arc;
 
diff --git a/rust/arrow/src/ipc/gen/Message.rs b/rust/arrow/src/ipc/gen/Message.rs
index 5a753f3..0cd88b1 100644
--- a/rust/arrow/src/ipc/gen/Message.rs
+++ b/rust/arrow/src/ipc/gen/Message.rs
@@ -117,9 +117,9 @@ pub struct MessageHeaderUnionTableOffset {}
 /// Metadata about a field at some level of a nested type tree (but not
 /// its children).
 ///
-/// For example, a List<Int16> with values [[1, 2, 3], null, [4], [5, 6], null]
-/// would have {length: 5, null_count: 2} for its List node, and {length: 6,
-/// null_count: 0} for its Int16 node, as separate FieldNode structs
+/// For example, a `List<Int16>` with values `[[1, 2, 3], null, [4], [5, 6], null]`
+/// would have `{length: 5, null_count: 2}` for its `List` node, and `{length: 6,
+/// null_count: 0}` for its `Int16` node, as separate `FieldNode` structs
 // struct FieldNode, aligned to 8
 #[repr(C, align(8))]
 #[derive(Clone, Copy, Debug, PartialEq)]
diff --git a/rust/arrow/src/ipc/gen/Schema.rs b/rust/arrow/src/ipc/gen/Schema.rs
index 6cab35d..a565e03 100644
--- a/rust/arrow/src/ipc/gen/Schema.rs
+++ b/rust/arrow/src/ipc/gen/Schema.rs
@@ -878,9 +878,9 @@ impl<'a: 'b, 'b> FixedSizeListBuilder<'a, 'b> {
 /// not enforced
 ///
 /// Map
-///   - child[0] entry: Struct
-///     - child[0] key: K
-///     - child[1] value: V
+///   - `child[0]` entry: Struct
+///     - `child[0]` key: K
+///     - `child[1]` value: V
 ///
 /// Neither the "entry" field nor the "key" field may be nullable.
 ///
@@ -967,7 +967,7 @@ impl<'a: 'b, 'b> MapBuilder<'a, 'b> {
 /// A union is a complex type with children in Field
 /// By default ids in the type vector refer to the offsets in the children
 /// optionally typeIds provides an indirection between the child offset and the type id
-/// for each child typeIds[offset] is the id used in the type vector
+/// for each child `typeIds[offset]` is the id used in the type vector
 pub enum UnionOffset {}
 #[derive(Copy, Clone, Debug, PartialEq)]
 
diff --git a/rust/arrow/src/ipc/gen/SparseTensor.rs b/rust/arrow/src/ipc/gen/SparseTensor.rs
index 8202abc..a47ec3d 100644
--- a/rust/arrow/src/ipc/gen/SparseTensor.rs
+++ b/rust/arrow/src/ipc/gen/SparseTensor.rs
@@ -234,28 +234,34 @@ impl<'a> SparseMatrixIndexCSR<'a> {
     pub const VT_INDPTRBUFFER: flatbuffers::VOffsetT = 4;
     pub const VT_INDICESBUFFER: flatbuffers::VOffsetT = 6;
 
-    /// indptrBuffer stores the location and size of indptr array that
+    /// `indptrBuffer` stores the location and size of `indptr` array that
     /// represents the range of the rows.
-    /// The i-th row spans from indptr[i] to indptr[i+1] in the data.
+    /// The `i`-th row spans from `indptr[i]` to `indptr[i+1]` in the data.
     /// The length of this array is 1 + (the number of rows), and the type
     /// of index value is long.
     ///
     /// For example, let X be the following 6x4 matrix:
     ///
+    ///```text
     ///   X := [[0, 1, 2, 0],
     ///         [0, 0, 3, 0],
     ///         [0, 4, 0, 5],
     ///         [0, 0, 0, 0],
     ///         [6, 0, 7, 8],
     ///         [0, 9, 0, 0]].
+    ///```
     ///
     /// The array of non-zero values in X is:
     ///
+    ///```text
     ///   values(X) = [1, 2, 3, 4, 5, 6, 7, 8, 9].
+    ///```
     ///
-    /// And the indptr of X is:
+    /// And the `indptr` of X is:
     ///
+    ///```text
     ///   indptr(X) = [0, 2, 3, 5, 5, 8, 10].
+    ///```
     #[inline]
     pub fn indptrBuffer(&self) -> Option<&'a Buffer> {
         self._tab
diff --git a/rust/parquet/src/column/page.rs b/rust/parquet/src/column/page.rs
index af86b02..6adfd9d 100644
--- a/rust/parquet/src/column/page.rs
+++ b/rust/parquet/src/column/page.rs
@@ -57,7 +57,7 @@ pub enum Page {
 }
 
 impl Page {
-    /// Returns [`PageType`](`::basic::PageType`) for this page.
+    /// Returns [`PageType`](crate::basic::PageType) for this page.
     pub fn page_type(&self) -> PageType {
         match self {
             &Page::DataPage { .. } => PageType::DATA_PAGE,
@@ -84,7 +84,7 @@ impl Page {
         }
     }
 
-    /// Returns this page [`Encoding`](`::basic::Encoding`).
+    /// Returns this page [`Encoding`](crate::basic::Encoding).
     pub fn encoding(&self) -> Encoding {
         match self {
             &Page::DataPage { encoding, .. } => encoding,
@@ -93,7 +93,7 @@ impl Page {
         }
     }
 
-    /// Returns optional [`Statistics`](`::file::metadata::Statistics`).
+    /// Returns optional [`Statistics`](crate::file::metadata::Statistics).
     pub fn statistics(&self) -> Option<&Statistics> {
         match self {
             &Page::DataPage { ref statistics, .. } => statistics.as_ref(),
diff --git a/rust/parquet/src/compression.rs b/rust/parquet/src/compression.rs
index 9cf2ac2..bdc9729 100644
--- a/rust/parquet/src/compression.rs
+++ b/rust/parquet/src/compression.rs
@@ -17,7 +17,7 @@
 
 //! Contains codec interface and supported codec implementations.
 //!
-//! See [`Compression`](`::basic::Compression`) enum for all available compression
+//! See [`Compression`](crate::basic::Compression) enum for all available compression
 //! algorithms.
 //!
 //! # Example
diff --git a/rust/parquet/src/encodings/decoding.rs b/rust/parquet/src/encodings/decoding.rs
index d20a957..6f539f1 100644
--- a/rust/parquet/src/encodings/decoding.rs
+++ b/rust/parquet/src/encodings/decoding.rs
@@ -132,7 +132,7 @@ pub fn get_decoder<T: DataType>(
 /// Plain decoding that supports all types.
 /// Values are encoded back to back. For native types, data is encoded as little endian.
 /// Floating point types are encoded in IEEE.
-/// See [`PlainDecoder`](`::encoding::PlainEncoder`) for more information.
+/// See [`PlainEncoder`](crate::encoding::PlainEncoder) for more information.
 pub struct PlainDecoder<T: DataType> {
     // The remaining number of values in the byte array
     num_values: usize,
@@ -306,7 +306,7 @@ impl Decoder<FixedLenByteArrayType> for PlainDecoder<FixedLenByteArrayType> {
 /// Dictionary decoder.
 /// The dictionary encoding builds a dictionary of values encountered in a given column.
 /// The dictionary is be stored in a dictionary page per column chunk.
-/// See [`DictEncoder`](`::encoding::DictEncoder`) for more information.
+/// See [`DictEncoder`](crate::encoding::DictEncoder) for more information.
 pub struct DictDecoder<T: DataType> {
     // The dictionary, which maps ids to the values
     dictionary: Vec<T::T>,
@@ -377,7 +377,7 @@ impl<T: DataType> Decoder<T> for DictDecoder<T> {
 
 /// RLE/Bit-Packing hybrid decoding for values.
 /// Currently is used only for data pages v2 and supports boolean types.
-/// See [`RleValueEncoder`](`::encoding::RleValueEncoder`) for more information.
+/// See [`RleValueEncoder`](crate::encoding::RleValueEncoder) for more information.
 pub struct RleValueDecoder<T: DataType> {
     values_left: usize,
     decoder: Option<RleDecoder>,
@@ -459,7 +459,7 @@ impl Decoder<BoolType> for RleValueDecoder<BoolType> {
 
 /// Delta binary packed decoder.
 /// Supports INT32 and INT64 types.
-/// See [`DeltaBitPackEncoder`](`::encoding::DeltaBitPackEncoder`) for more information.
+/// See [`DeltaBitPackEncoder`](crate::encoding::DeltaBitPackEncoder) for more information.
 pub struct DeltaBitPackDecoder<T: DataType> {
     bit_reader: BitReader,
     initialized: bool,
@@ -705,7 +705,7 @@ impl DeltaBitPackDecoderConversion<Int64Type> for DeltaBitPackDecoder<Int64Type>
 /// Delta length byte array decoder.
 /// Only applied to byte arrays to separate the length values and the data, the lengths
 /// are encoded using DELTA_BINARY_PACKED encoding.
-/// See [`DeltaLengthByteArrayEncoder`](`::encoding::DeltaLengthByteArrayEncoder`)
+/// See [`DeltaLengthByteArrayEncoder`](crate::encoding::DeltaLengthByteArrayEncoder)
 /// for more information.
 pub struct DeltaLengthByteArrayDecoder<T: DataType> {
     // Lengths for each byte array in `data`
@@ -802,7 +802,7 @@ impl Decoder<ByteArrayType> for DeltaLengthByteArrayDecoder<ByteArrayType> {
 /// Delta byte array decoder.
 /// Prefix lengths are encoded using `DELTA_BINARY_PACKED` encoding, Suffixes are stored
 /// using `DELTA_LENGTH_BYTE_ARRAY` encoding.
-/// See [`DeltaByteArrayEncoder`](`::encoding::DeltaByteArrayEncoder`) for more
+/// See [`DeltaByteArrayEncoder`](crate::encoding::DeltaByteArrayEncoder) for more
 /// information.
 pub struct DeltaByteArrayDecoder<T: DataType> {
     // Prefix lengths for each byte array
diff --git a/rust/parquet/src/file/statistics.rs b/rust/parquet/src/file/statistics.rs
index 27bbcb6..8836847 100644
--- a/rust/parquet/src/file/statistics.rs
+++ b/rust/parquet/src/file/statistics.rs
@@ -280,8 +280,8 @@ impl Statistics {
     /// This means that the column order is likely to be undefined, which, for old files
     /// could mean a signed sort order of values.
     ///
-    /// Refer to [`ColumnOrder`](`::basic::ColumnOrder`) and
-    /// [`SortOrder`](`::basic::SortOrder`) for more information.
+    /// Refer to [`ColumnOrder`](crate::basic::ColumnOrder) and
+    /// [`SortOrder`](crate::basic::SortOrder) for more information.
     pub fn is_min_max_deprecated(&self) -> bool {
         statistics_enum_func![self, is_min_max_deprecated]
     }
diff --git a/rust/parquet/src/record/reader.rs b/rust/parquet/src/record/reader.rs
index a5dbcb1..d825d91 100644
--- a/rust/parquet/src/record/reader.rs
+++ b/rust/parquet/src/record/reader.rs
@@ -16,7 +16,7 @@
 // under the License.
 
 //! Contains implementation of record assembly and converting Parquet types into
-//! [`Row`](`::record::api::Row`)s.
+//! [`Row`](crate::record::api::Row)s.
 
 use std::{collections::HashMap, fmt, rc::Rc};
 
@@ -612,7 +612,7 @@ impl fmt::Display for Reader {
 // ----------------------------------------------------------------------
 // Row iterators
 
-/// Iterator of [`Row`](`::record::api::Row`)s.
+/// Iterator of [`Row`](crate::record::api::Row)s.
 /// It is used either for a single row group to iterate over data in that row group, or
 /// an entire file with auto buffering of all row groups.
 pub struct RowIter<'a> {
@@ -625,7 +625,7 @@ pub struct RowIter<'a> {
 }
 
 impl<'a> RowIter<'a> {
-    /// Creates iterator of [`Row`](`::record::api::Row`)s for all row groups in a file.
+    /// Creates iterator of [`Row`](crate::record::api::Row)s for all row groups in a file.
     pub fn from_file(proj: Option<Type>, reader: &'a FileReader) -> Result<Self> {
         let descr = Self::get_proj_descr(
             proj,
@@ -643,7 +643,7 @@ impl<'a> RowIter<'a> {
         })
     }
 
-    /// Creates iterator of [`Row`](`::record::api::Row`)s for a specific row group.
+    /// Creates iterator of [`Row`](crate::record::api::Row)s for a specific row group.
     pub fn from_row_group(
         proj: Option<Type>,
         reader: &'a RowGroupReader,
@@ -722,7 +722,7 @@ impl<'a> Iterator for RowIter<'a> {
     }
 }
 
-/// Internal iterator of [`Row`](`::record::api::Row`)s for a reader.
+/// Internal iterator of [`Row`](crate::record::api::Row)s for a reader.
 pub struct ReaderIter {
     root_reader: Reader,
     records_left: usize,
diff --git a/rust/parquet/src/schema/parser.rs b/rust/parquet/src/schema/parser.rs
index c8c2a02..3595610 100644
--- a/rust/parquet/src/schema/parser.rs
+++ b/rust/parquet/src/schema/parser.rs
@@ -17,7 +17,7 @@
 
 //! Parquet schema parser.
 //! Provides methods to parse and validate string message type into Parquet
-//! [`Type`](`::schema::types::Type`).
+//! [`Type`](crate::schema::types::Type).
 //!
 //! # Example
 //!
@@ -48,7 +48,7 @@ use crate::basic::{LogicalType, Repetition, Type as PhysicalType};
 use crate::errors::{ParquetError, Result};
 use crate::schema::types::{Type, TypePtr};
 
-/// Parses message type as string into a Parquet [`Type`](`::schema::types::Type`) which,
+/// Parses message type as string into a Parquet [`Type`](crate::schema::types::Type) which,
 /// for example, could be used to extract individual columns. Returns Parquet general
 /// error when parsing or validation fails.
 pub fn parse_message_type<'a>(message_type: &'a str) -> Result<Type> {
diff --git a/rust/parquet/src/schema/printer.rs b/rust/parquet/src/schema/printer.rs
index 85ef1cc..d9f8c19 100644
--- a/rust/parquet/src/schema/printer.rs
+++ b/rust/parquet/src/schema/printer.rs
@@ -51,7 +51,7 @@ use crate::file::metadata::{
 };
 use crate::schema::types::Type;
 
-/// Prints Parquet metadata [`ParquetMetaData`](`::file::metadata::ParquetMetaData`)
+/// Prints Parquet metadata [`ParquetMetaData`](crate::file::metadata::ParquetMetaData)
 /// information.
 #[allow(unused_must_use)]
 pub fn print_parquet_metadata(out: &mut io::Write, metadata: &ParquetMetaData) {
@@ -68,7 +68,7 @@ pub fn print_parquet_metadata(out: &mut io::Write, metadata: &ParquetMetaData) {
     }
 }
 
-/// Prints file metadata [`FileMetaData`](`::file::metadata::FileMetaData`) information.
+/// Prints file metadata [`FileMetaData`](crate::file::metadata::FileMetaData) information.
 #[allow(unused_must_use)]
 pub fn print_file_metadata(out: &mut io::Write, file_metadata: &FileMetaData) {
     writeln!(out, "version: {}", file_metadata.version());
@@ -80,7 +80,7 @@ pub fn print_file_metadata(out: &mut io::Write, file_metadata: &FileMetaData) {
     print_schema(out, schema);
 }
 
-/// Prints Parquet [`Type`](`::schema::types::Type`) information.
+/// Prints Parquet [`Type`](crate::schema::types::Type) information.
 #[allow(unused_must_use)]
 pub fn print_schema(out: &mut io::Write, tp: &Type) {
     // TODO: better if we can pass fmt::Write to Printer.
diff --git a/rust/parquet/src/schema/types.rs b/rust/parquet/src/schema/types.rs
index 6dc9304..1024de8 100644
--- a/rust/parquet/src/schema/types.rs
+++ b/rust/parquet/src/schema/types.rs
@@ -195,13 +195,13 @@ impl<'a> PrimitiveTypeBuilder<'a> {
         }
     }
 
-    /// Sets [`Repetition`](`::basic::Repetition`) for this field and returns itself.
+    /// Sets [`Repetition`](crate::basic::Repetition) for this field and returns itself.
     pub fn with_repetition(mut self, repetition: Repetition) -> Self {
         self.repetition = repetition;
         self
     }
 
-    /// Sets [`LogicalType`](`::basic::LogicalType`) for this field and returns itself.
+    /// Sets [`LogicalType`](crate::basic::LogicalType) for this field and returns itself.
     pub fn with_logical_type(mut self, logical_type: LogicalType) -> Self {
         self.logical_type = logical_type;
         self
@@ -416,13 +416,13 @@ impl<'a> GroupTypeBuilder<'a> {
         }
     }
 
-    /// Sets [`Repetition`](`::basic::Repetition`) for this field and returns itself.
+    /// Sets [`Repetition`](crate::basic::Repetition) for this field and returns itself.
     pub fn with_repetition(mut self, repetition: Repetition) -> Self {
         self.repetition = Some(repetition);
         self
     }
 
-    /// Sets [`LogicalType`](`::basic::LogicalType`) for this field and returns itself.
+    /// Sets [`LogicalType`](crate::basic::LogicalType) for this field and returns itself.
     pub fn with_logical_type(mut self, logical_type: LogicalType) -> Self {
         self.logical_type = logical_type;
         self
@@ -479,13 +479,13 @@ impl BasicTypeInfo {
         self.repetition.is_some()
     }
 
-    /// Returns [`Repetition`](`::basic::Repetition`) value for the type.
+    /// Returns [`Repetition`](crate::basic::Repetition) value for the type.
     pub fn repetition(&self) -> Repetition {
         assert!(self.repetition.is_some());
         self.repetition.unwrap()
     }
 
-    /// Returns [`LogicalType`](`::basic::LogicalType`) value for the type.
+    /// Returns [`LogicalType`](crate::basic::LogicalType) value for the type.
     pub fn logical_type(&self) -> LogicalType {
         self.logical_type
     }
@@ -619,17 +619,17 @@ impl ColumnDescriptor {
         &self.path
     }
 
-    /// Returns self type [`Type`](`::schema::types::Type`) for this leaf column.
+    /// Returns self type [`Type`](crate::schema::types::Type) for this leaf column.
     pub fn self_type(&self) -> &Type {
         self.primitive_type.as_ref()
     }
 
-    /// Returns self type [`TypePtr`](`::schema::types::TypePtr`)  for this leaf column.
+    /// Returns self type [`TypePtr`](crate::schema::types::TypePtr)  for this leaf column.
     pub fn self_type_ptr(&self) -> TypePtr {
         self.primitive_type.clone()
     }
 
-    /// Returns root [`Type`](`::schema::types::Type`) (most top-level parent field) for
+    /// Returns root [`Type`](crate::schema::types::Type) (most top-level parent field) for
     /// this leaf column.
     pub fn root_type(&self) -> &Type {
         assert!(self.root_type.is_some());
@@ -641,7 +641,7 @@ impl ColumnDescriptor {
         self.primitive_type.name()
     }
 
-    /// Returns [`LogicalType`](`::basic::LogicalType`) for this column.
+    /// Returns [`LogicalType`](crate::basic::LogicalType) for this column.
     pub fn logical_type(&self) -> LogicalType {
         self.primitive_type.get_basic_info().logical_type()
     }
@@ -751,13 +751,13 @@ impl SchemaDescriptor {
         self.leaves.len()
     }
 
-    /// Returns column root [`Type`](`::schema::types::Type`) for a field position.
+    /// Returns column root [`Type`](crate::schema::types::Type) for a field position.
     pub fn get_column_root(&self, i: usize) -> &Type {
         let result = self.column_root_of(i);
         result.as_ref()
     }
 
-    /// Returns column root [`Type`](`::schema::types::Type`) pointer for a field
+    /// Returns column root [`Type`](crate::schema::types::Type) pointer for a field
     /// position.
     pub fn get_column_root_ptr(&self, i: usize) -> TypePtr {
         let result = self.column_root_of(i);
@@ -781,7 +781,7 @@ impl SchemaDescriptor {
         result.unwrap()
     }
 
-    /// Returns schema as [`Type`](`::schema::types::Type`).
+    /// Returns schema as [`Type`](crate::schema::types::Type).
     pub fn root_schema(&self) -> &Type {
         self.schema.as_ref()
     }