unobtanium 3.0.0

Opinioated Web search engine library with crawler and viewer companion.
Documentation
// DO NOT MODIFY BY HAND!
// This was generated by generate_database_fields.lua
//
// Regenerate if the database tables have changed.

use criterium::sql::Field;

use crate::database::BaseTable;
use crate::database::CrawlerTable;
use crate::database::SummaryTable;
use crate::database::fields::*;

#[derive(Debug, Clone, PartialEq, Eq)]
pub enum BaseSchema {
	MimeParameter(MimeParameterField),
	Mimetype(MimetypeField),
	Origin(OriginField),
	UnobtaniumDatabaseInfo(UnobtaniumDatabaseInfoField),
	Url(UrlField),
}

impl Field for BaseSchema {

	type TableType = BaseTable;

	fn sql_safe_field_name(&self) -> &str {
		match self {
			Self::MimeParameter(f) => f.sql_safe_field_name(),
			Self::Mimetype(f) => f.sql_safe_field_name(),
			Self::Origin(f) => f.sql_safe_field_name(),
			Self::UnobtaniumDatabaseInfo(f) => f.sql_safe_field_name(),
			Self::Url(f) => f.sql_safe_field_name(),
		}
	}

	fn table(&self) -> &Self::TableType {
		match self {
			Self::MimeParameter(_) => &BaseTable::MimeParameter,
			Self::Mimetype(_) => &BaseTable::Mimetype,
			Self::Origin(_) => &BaseTable::Origin,
			Self::UnobtaniumDatabaseInfo(_) => &BaseTable::UnobtaniumDatabaseInfo,
			Self::Url(_) => &BaseTable::Url,
		}
	}

}

impl From<MimeParameterField> for BaseSchema {
	fn from(value: MimeParameterField) -> Self {
		Self::MimeParameter(value)
	}
}

impl From<MimetypeField> for BaseSchema {
	fn from(value: MimetypeField) -> Self {
		Self::Mimetype(value)
	}
}

impl From<OriginField> for BaseSchema {
	fn from(value: OriginField) -> Self {
		Self::Origin(value)
	}
}

impl From<UnobtaniumDatabaseInfoField> for BaseSchema {
	fn from(value: UnobtaniumDatabaseInfoField) -> Self {
		Self::UnobtaniumDatabaseInfo(value)
	}
}

impl From<UrlField> for BaseSchema {
	fn from(value: UrlField) -> Self {
		Self::Url(value)
	}
}


#[derive(Debug, Clone, PartialEq, Eq)]
pub enum CrawlerSchema {
	MimeParameter(MimeParameterField),
	Mimetype(MimetypeField),
	Origin(OriginField),
	UnobtaniumDatabaseInfo(UnobtaniumDatabaseInfoField),
	Url(UrlField),
	Agent(AgentField),
	CrawlCandidate(CrawlCandidateField),
	CrawlLog(CrawlLogField),
	File(FileField),
	FileText(FileTextField),
	Redirect(RedirectField),
	Request(RequestField),
	TempIgnoreOrigin(TempIgnoreOriginField),
	TempIgnoreUrl(TempIgnoreUrlField),
}

impl Field for CrawlerSchema {

	type TableType = CrawlerTable;

	fn sql_safe_field_name(&self) -> &str {
		match self {
			Self::MimeParameter(f) => f.sql_safe_field_name(),
			Self::Mimetype(f) => f.sql_safe_field_name(),
			Self::Origin(f) => f.sql_safe_field_name(),
			Self::UnobtaniumDatabaseInfo(f) => f.sql_safe_field_name(),
			Self::Url(f) => f.sql_safe_field_name(),
			Self::Agent(f) => f.sql_safe_field_name(),
			Self::CrawlCandidate(f) => f.sql_safe_field_name(),
			Self::CrawlLog(f) => f.sql_safe_field_name(),
			Self::File(f) => f.sql_safe_field_name(),
			Self::FileText(f) => f.sql_safe_field_name(),
			Self::Redirect(f) => f.sql_safe_field_name(),
			Self::Request(f) => f.sql_safe_field_name(),
			Self::TempIgnoreOrigin(f) => f.sql_safe_field_name(),
			Self::TempIgnoreUrl(f) => f.sql_safe_field_name(),
		}
	}

	fn table(&self) -> &Self::TableType {
		match self {
			Self::MimeParameter(_) => &CrawlerTable::Base(BaseTable::MimeParameter),
			Self::Mimetype(_) => &CrawlerTable::Base(BaseTable::Mimetype),
			Self::Origin(_) => &CrawlerTable::Base(BaseTable::Origin),
			Self::UnobtaniumDatabaseInfo(_) => &CrawlerTable::Base(BaseTable::UnobtaniumDatabaseInfo),
			Self::Url(_) => &CrawlerTable::Base(BaseTable::Url),
			Self::Agent(_) => &CrawlerTable::Agent,
			Self::CrawlCandidate(_) => &CrawlerTable::CrawlCandidate,
			Self::CrawlLog(_) => &CrawlerTable::CrawlLog,
			Self::File(_) => &CrawlerTable::File,
			Self::FileText(_) => &CrawlerTable::FileText,
			Self::Redirect(_) => &CrawlerTable::Redirect,
			Self::Request(_) => &CrawlerTable::Request,
			Self::TempIgnoreOrigin(_) => &CrawlerTable::TempIgnoreOrigin,
			Self::TempIgnoreUrl(_) => &CrawlerTable::TempIgnoreUrl,
		}
	}

}

impl From<MimeParameterField> for CrawlerSchema {
	fn from(value: MimeParameterField) -> Self {
		Self::MimeParameter(value)
	}
}

impl From<MimetypeField> for CrawlerSchema {
	fn from(value: MimetypeField) -> Self {
		Self::Mimetype(value)
	}
}

impl From<OriginField> for CrawlerSchema {
	fn from(value: OriginField) -> Self {
		Self::Origin(value)
	}
}

impl From<UnobtaniumDatabaseInfoField> for CrawlerSchema {
	fn from(value: UnobtaniumDatabaseInfoField) -> Self {
		Self::UnobtaniumDatabaseInfo(value)
	}
}

impl From<UrlField> for CrawlerSchema {
	fn from(value: UrlField) -> Self {
		Self::Url(value)
	}
}

impl From<AgentField> for CrawlerSchema {
	fn from(value: AgentField) -> Self {
		Self::Agent(value)
	}
}

impl From<CrawlCandidateField> for CrawlerSchema {
	fn from(value: CrawlCandidateField) -> Self {
		Self::CrawlCandidate(value)
	}
}

impl From<CrawlLogField> for CrawlerSchema {
	fn from(value: CrawlLogField) -> Self {
		Self::CrawlLog(value)
	}
}

impl From<FileField> for CrawlerSchema {
	fn from(value: FileField) -> Self {
		Self::File(value)
	}
}

impl From<FileTextField> for CrawlerSchema {
	fn from(value: FileTextField) -> Self {
		Self::FileText(value)
	}
}

impl From<RedirectField> for CrawlerSchema {
	fn from(value: RedirectField) -> Self {
		Self::Redirect(value)
	}
}

impl From<RequestField> for CrawlerSchema {
	fn from(value: RequestField) -> Self {
		Self::Request(value)
	}
}

impl From<TempIgnoreOriginField> for CrawlerSchema {
	fn from(value: TempIgnoreOriginField) -> Self {
		Self::TempIgnoreOrigin(value)
	}
}

impl From<TempIgnoreUrlField> for CrawlerSchema {
	fn from(value: TempIgnoreUrlField) -> Self {
		Self::TempIgnoreUrl(value)
	}
}


#[derive(Debug, Clone, PartialEq, Eq)]
pub enum SummarySchema {
	MimeParameter(MimeParameterField),
	Mimetype(MimetypeField),
	Origin(OriginField),
	UnobtaniumDatabaseInfo(UnobtaniumDatabaseInfoField),
	Url(UrlField),
	CrawlSummary(CrawlSummaryField),
	DocumentDescription(DocumentDescriptionField),
	DuplicateSummary(DuplicateSummaryField),
	EntityGeneration(EntityGenerationField),
	FileSummary(FileSummaryField),
	FullTextEntityIndex(FullTextEntityIndexField),
	HttpSummary(HttpSummaryField),
	LinkSummary(LinkSummaryField),
	RedirectSummary(RedirectSummaryField),
	TextPile(TextPileField),
	Token(TokenField),
	TokenStatistics(TokenStatisticsField),
}

impl Field for SummarySchema {

	type TableType = SummaryTable;

	fn sql_safe_field_name(&self) -> &str {
		match self {
			Self::MimeParameter(f) => f.sql_safe_field_name(),
			Self::Mimetype(f) => f.sql_safe_field_name(),
			Self::Origin(f) => f.sql_safe_field_name(),
			Self::UnobtaniumDatabaseInfo(f) => f.sql_safe_field_name(),
			Self::Url(f) => f.sql_safe_field_name(),
			Self::CrawlSummary(f) => f.sql_safe_field_name(),
			Self::DocumentDescription(f) => f.sql_safe_field_name(),
			Self::DuplicateSummary(f) => f.sql_safe_field_name(),
			Self::EntityGeneration(f) => f.sql_safe_field_name(),
			Self::FileSummary(f) => f.sql_safe_field_name(),
			Self::FullTextEntityIndex(f) => f.sql_safe_field_name(),
			Self::HttpSummary(f) => f.sql_safe_field_name(),
			Self::LinkSummary(f) => f.sql_safe_field_name(),
			Self::RedirectSummary(f) => f.sql_safe_field_name(),
			Self::TextPile(f) => f.sql_safe_field_name(),
			Self::Token(f) => f.sql_safe_field_name(),
			Self::TokenStatistics(f) => f.sql_safe_field_name(),
		}
	}

	fn table(&self) -> &Self::TableType {
		match self {
			Self::MimeParameter(_) => &SummaryTable::Base(BaseTable::MimeParameter),
			Self::Mimetype(_) => &SummaryTable::Base(BaseTable::Mimetype),
			Self::Origin(_) => &SummaryTable::Base(BaseTable::Origin),
			Self::UnobtaniumDatabaseInfo(_) => &SummaryTable::Base(BaseTable::UnobtaniumDatabaseInfo),
			Self::Url(_) => &SummaryTable::Base(BaseTable::Url),
			Self::CrawlSummary(_) => &SummaryTable::CrawlSummary,
			Self::DocumentDescription(_) => &SummaryTable::DocumentDescription,
			Self::DuplicateSummary(_) => &SummaryTable::DuplicateSummary,
			Self::EntityGeneration(_) => &SummaryTable::EntityGeneration,
			Self::FileSummary(_) => &SummaryTable::FileSummary,
			Self::FullTextEntityIndex(_) => &SummaryTable::FullTextEntityIndex,
			Self::HttpSummary(_) => &SummaryTable::HttpSummary,
			Self::LinkSummary(_) => &SummaryTable::LinkSummary,
			Self::RedirectSummary(_) => &SummaryTable::RedirectSummary,
			Self::TextPile(_) => &SummaryTable::TextPile,
			Self::Token(_) => &SummaryTable::Token,
			Self::TokenStatistics(_) => &SummaryTable::TokenStatistics,
		}
	}

}

impl From<MimeParameterField> for SummarySchema {
	fn from(value: MimeParameterField) -> Self {
		Self::MimeParameter(value)
	}
}

impl From<MimetypeField> for SummarySchema {
	fn from(value: MimetypeField) -> Self {
		Self::Mimetype(value)
	}
}

impl From<OriginField> for SummarySchema {
	fn from(value: OriginField) -> Self {
		Self::Origin(value)
	}
}

impl From<UnobtaniumDatabaseInfoField> for SummarySchema {
	fn from(value: UnobtaniumDatabaseInfoField) -> Self {
		Self::UnobtaniumDatabaseInfo(value)
	}
}

impl From<UrlField> for SummarySchema {
	fn from(value: UrlField) -> Self {
		Self::Url(value)
	}
}

impl From<CrawlSummaryField> for SummarySchema {
	fn from(value: CrawlSummaryField) -> Self {
		Self::CrawlSummary(value)
	}
}

impl From<DocumentDescriptionField> for SummarySchema {
	fn from(value: DocumentDescriptionField) -> Self {
		Self::DocumentDescription(value)
	}
}

impl From<DuplicateSummaryField> for SummarySchema {
	fn from(value: DuplicateSummaryField) -> Self {
		Self::DuplicateSummary(value)
	}
}

impl From<EntityGenerationField> for SummarySchema {
	fn from(value: EntityGenerationField) -> Self {
		Self::EntityGeneration(value)
	}
}

impl From<FileSummaryField> for SummarySchema {
	fn from(value: FileSummaryField) -> Self {
		Self::FileSummary(value)
	}
}

impl From<FullTextEntityIndexField> for SummarySchema {
	fn from(value: FullTextEntityIndexField) -> Self {
		Self::FullTextEntityIndex(value)
	}
}

impl From<HttpSummaryField> for SummarySchema {
	fn from(value: HttpSummaryField) -> Self {
		Self::HttpSummary(value)
	}
}

impl From<LinkSummaryField> for SummarySchema {
	fn from(value: LinkSummaryField) -> Self {
		Self::LinkSummary(value)
	}
}

impl From<RedirectSummaryField> for SummarySchema {
	fn from(value: RedirectSummaryField) -> Self {
		Self::RedirectSummary(value)
	}
}

impl From<TextPileField> for SummarySchema {
	fn from(value: TextPileField) -> Self {
		Self::TextPile(value)
	}
}

impl From<TokenField> for SummarySchema {
	fn from(value: TokenField) -> Self {
		Self::Token(value)
	}
}

impl From<TokenStatisticsField> for SummarySchema {
	fn from(value: TokenStatisticsField) -> Self {
		Self::TokenStatistics(value)
	}
}