pub type ColumnWalker<'a> = Walker<'a, Either<TableColumnId, ViewColumnId>>;
Expand description

Traverse a column, that can be in a table or in a view.

Aliased Type§

struct ColumnWalker<'a> {
    pub id: Either<TableColumnId, ViewColumnId>,
    pub schema: &'a SqlSchema,
}

Fields§

§id: Either<TableColumnId, ViewColumnId>

The identifier.

§schema: &'a SqlSchema

The schema for which the identifier is valid.

Implementations§

source§

impl<'a> ColumnWalker<'a>

source

pub fn refine(self) -> Either<TableColumnWalker<'a>, ViewColumnWalker<'a>>

Refines the walker to either as a table or as a view column.

source

pub fn arity(self) -> ColumnArity

The nullability and arity of the column.

source

pub fn column_has_enum_default_value(self, enum_name: &str, value: &str) -> bool

Returns whether the column has the enum default value of the given enum type.

source

pub fn column_type_is_enum(self, enum_name: &str) -> bool

Returns whether the type of the column matches the provided enum name.

source

pub fn column_type_family(self) -> &'a ColumnTypeFamily

The type family.

source

pub fn column_type_family_as_enum(self) -> Option<EnumWalker<'a>>

Extract an Enum column type family, or None if the family is something else.

source

pub fn name(self) -> &'a str

The column name.

source

pub fn column_type(self) -> &'a ColumnType

the full column type.

source

pub fn column_native_type<T: Any + 'static>(self) -> Option<&'a T>

the column native type.

source

pub fn is_autoincrement(self) -> bool

is this column an auto-incrementing integer?

source

pub fn default(self) -> Option<DefaultValueWalker<'a>>

the default value for the column.

source

pub fn is_same_column(self, other: ColumnWalker<'_>) -> bool

returns whether two columns are named the same and belong to the same table.

source

pub fn is_in_view(self) -> bool

True if the column is defined in a view.

source

pub fn description(self) -> Option<&'a str>

Description (comment) of the column.