pub struct Database { /* private fields */ }Expand description
Connects to our backing database instance, providing high level functions for accessing the data therein.
Implementations§
source§impl Database
impl Database
pub async fn genre_for_document( &self, doc_id: Uuid, ) -> Result<Option<Genre>, Error>
pub async fn format_for_document( &self, doc_id: Uuid, ) -> Result<Option<Format>, Error>
pub async fn keywords_for_documents( &self, doc_ids: Vec<Uuid>, ) -> Result<HashMap<Uuid, Vec<Keyword>>, Error>
pub async fn languages_for_documents( &self, doc_ids: Vec<Uuid>, ) -> Result<HashMap<Uuid, Vec<Language>>, Error>
pub async fn subject_headings_for_documents( &self, doc_ids: Vec<Uuid>, ) -> Result<HashMap<Uuid, Vec<SubjectHeading>>, Error>
pub async fn spatial_coverage_for_documents( &self, doc_ids: Vec<Uuid>, ) -> Result<HashMap<Uuid, Vec<SpatialCoverage>>, Error>
pub async fn creators_for_documents( &self, doc_ids: Vec<Uuid>, ) -> Result<HashMap<Uuid, Vec<Creator>>, Error>
pub async fn creators_for_document( &self, doc_id: Uuid, ) -> Result<Vec<Creator>, Error>
pub async fn keywords_for_document( &self, doc_id: Uuid, ) -> Result<Vec<Keyword>, Error>
pub async fn languages_for_document( &self, doc_id: Uuid, ) -> Result<Vec<Language>, Error>
pub async fn subject_headings_for_document( &self, doc_id: Uuid, ) -> Result<Vec<SubjectHeading>, Error>
pub async fn spatial_coverage_for_document( &self, doc_id: Uuid, ) -> Result<Vec<SpatialCoverage>, Error>
pub fn connect(num_connections: Option<u32>) -> Result<Self>
sourcepub async fn comment_by_id(&self, comment_id: &Uuid) -> Result<Comment>
pub async fn comment_by_id(&self, comment_id: &Uuid) -> Result<Comment>
Get a specific comment by id
sourcepub async fn comments_by_parent(
&self,
parent_id: &Uuid,
parent_type: &CommentParentType,
) -> Result<Vec<Comment>>
pub async fn comments_by_parent( &self, parent_id: &Uuid, parent_type: &CommentParentType, ) -> Result<Vec<Comment>>
Get all comments on a given object
sourcepub async fn insert_comment(
&self,
posted_by: &Uuid,
text_content: String,
parent_id: &Uuid,
parent_type: &CommentParentType,
comment_type: &Option<CommentType>,
) -> Result<Uuid>
pub async fn insert_comment( &self, posted_by: &Uuid, text_content: String, parent_id: &Uuid, parent_type: &CommentParentType, comment_type: &Option<CommentType>, ) -> Result<Uuid>
Insert a new comment into the database
sourcepub async fn delete_comment(&self, comment_id: &Uuid) -> Result<Uuid>
pub async fn delete_comment(&self, comment_id: &Uuid) -> Result<Uuid>
Delete a comment from the database
pub async fn paragraph_by_id( &self, paragraph_id: &Uuid, ) -> Result<DocumentParagraph>
pub async fn word_by_id(&self, word_id: &Uuid) -> Result<AnnotatedForm>
pub async fn upsert_contributor(&self, person: ContributorDetails) -> Result<()>
pub async fn potential_syllabary_matches( &self, syllabary: &str, ) -> Result<Vec<AnnotatedForm>>
pub async fn connected_forms( &self, document_id: Option<DocumentId>, gloss: &str, ) -> Result<Vec<AnnotatedForm>>
pub async fn morphemes( &self, morpheme_id: MorphemeId, _compare_by: Option<CherokeeOrthography>, ) -> Result<Vec<MorphemeReference>>
pub async fn word_contributor_audio( &self, word_id: &Uuid, ) -> Result<Vec<AudioSlice>>
pub async fn document_contributor_audio( &self, document_id: &Uuid, ) -> Result<Vec<AudioSlice>>
pub async fn words_by_doc( &self, document_id: Option<DocumentId>, gloss: &str, ) -> Result<Vec<WordsInDocument>>
pub async fn all_documents(&self) -> Result<Vec<AnnotatedDoc>>
pub async fn upsert_image_source(&self, title: &str, url: &str) -> Result<Uuid>
pub async fn image_source_by_title( &self, title: &str, ) -> Result<Option<ImageSource>>
pub async fn image_source_by_id( &self, id: ImageSourceId, ) -> Result<Option<ImageSource>>
pub async fn upsert_collection( &self, collection: &EditedCollection, ) -> Result<String>
pub async fn insert_all_chapters( &self, chapters: Vec<CollectionChapter>, slug: String, ) -> Result<String>
pub async fn document_manifest( &self, _document_name: &str, url: String, ) -> Result<Manifest>
pub async fn search_words_any_field( &self, query: String, ) -> Result<Vec<AnnotatedForm>>
pub async fn top_collections(&self) -> Result<Vec<DocumentCollection>>
pub async fn all_edited_collections(&self) -> Result<Vec<EditedCollection>>
sourcepub async fn upsert_dailp_user(&self, user_id: Uuid) -> Result<Uuid>
pub async fn upsert_dailp_user(&self, user_id: Uuid) -> Result<Uuid>
Ensure that a user exists in the database user_id should be a congnito sub claim
pub async fn update_dailp_user(&self, user: UserUpdate) -> Result<Uuid>
pub async fn dailp_user_by_id(&self, user_id: &Uuid) -> Result<User>
pub async fn update_annotation(&self, _annote: Annotation) -> Result<()>
pub async fn update_word(&self, word: AnnotatedFormUpdate) -> Result<Uuid>
pub async fn add_bookmark( &self, document_id: Uuid, user_id: Uuid, ) -> Result<String>
pub async fn remove_bookmark( &self, document_id: Uuid, user_id: Uuid, ) -> Result<String>
pub async fn all_users(&self) -> Result<Vec<User>>
pub async fn bookmarked_documents(&self, user_id: &Uuid) -> Result<Vec<Uuid>>
pub async fn get_document_bookmarked_on( &self, document_id: &Uuid, user_id: &Uuid, ) -> Result<Option<Date>>
sourcepub async fn attach_audio_to_word(
&self,
upload: &AttachAudioToWordInput,
contributor_id: &Uuid,
) -> Result<Uuid>
pub async fn attach_audio_to_word( &self, upload: &AttachAudioToWordInput, contributor_id: &Uuid, ) -> Result<Uuid>
This does two things:
- Create a media slice if one does not exist for the provided audio recording.
- Add a join table entry attaching that media slice to the specified word.
Returns the id of the upserted media slice
sourcepub async fn attach_audio_to_document(
&self,
upload: &AttachAudioToDocumentInput,
contributor_id: &Uuid,
) -> Result<Uuid>
pub async fn attach_audio_to_document( &self, upload: &AttachAudioToDocumentInput, contributor_id: &Uuid, ) -> Result<Uuid>
As above in attach_audio_to_word:
Creates media slice if doesn’t yet exist for provided audio recording.
Adds join table entry attaching media slice to document.
Returns id of upserted media slice.
sourcepub async fn update_word_audio_visibility(
&self,
word_id: &Uuid,
audio_slice_id: &Uuid,
include_in_edited_collection: bool,
editor_id: &Uuid,
) -> Result<Option<Uuid>>
pub async fn update_word_audio_visibility( &self, word_id: &Uuid, audio_slice_id: &Uuid, include_in_edited_collection: bool, editor_id: &Uuid, ) -> Result<Option<Uuid>>
Update if a piece of word audio will be shown to readers Will return None if the word and audio assocation could not be found, otherwise word id.
sourcepub async fn update_document_audio_visibility(
&self,
document_id: &Uuid,
audio_slice_id: &Uuid,
include_in_edited_collection: bool,
editor_id: &Uuid,
) -> Result<Option<Uuid>>
pub async fn update_document_audio_visibility( &self, document_id: &Uuid, audio_slice_id: &Uuid, include_in_edited_collection: bool, editor_id: &Uuid, ) -> Result<Option<Uuid>>
Update if a piece of document audio will be shown to readers Will return None if the document and audio assocation could not be found, otherwise document id.
pub async fn update_document_metadata( &self, document: DocumentMetadataUpdate, ) -> Result<Uuid>
pub async fn update_paragraph( &self, paragraph: ParagraphUpdate, ) -> Result<DocumentParagraph>
pub async fn update_comment( &self, comment: CommentUpdate, ) -> Result<Uuid, Error>
pub async fn update_contributor_attribution( &self, contribution: UpdateContributorAttribution, ) -> Result<Uuid>
pub async fn delete_contributor_attribution( &self, contribution: DeleteContributorAttribution, ) -> Result<Uuid>
pub async fn all_pages(&self) -> Result<Vec<Page>>
pub async fn update_page(&self, _page: Page) -> Result<()>
pub async fn words_in_document( &self, document_id: DocumentId, start: Option<i64>, end: Option<i64>, ) -> Result<impl Iterator<Item = AnnotatedForm>>
pub async fn count_words_in_document( &self, document_id: DocumentId, ) -> Result<i64>
pub async fn documents_in_collection( &self, _super_collection: &str, collection: &str, ) -> Result<Vec<DocumentReference>>
pub async fn insert_top_collection( &self, title: String, _index: i64, ) -> Result<Uuid>
pub async fn insert_dictionary_document( &self, document: &DocumentMetadata, ) -> Result<DocumentId>
pub async fn insert_document( &self, meta: &DocumentMetadata, collection_id: Uuid, index_in_collection: i64, ) -> Result<DocumentId>
pub async fn insert_document_contents( &self, document: AnnotatedDoc, ) -> Result<()>
pub async fn insert_edited_collection( &self, collection: CreateEditedCollectionInput, ) -> Result<Uuid>
pub async fn insert_one_word(&self, form: AnnotatedForm) -> Result<()>
pub async fn insert_lexical_entries( &self, document_id: DocumentId, stems: Vec<AnnotatedForm>, surface_forms: Vec<AnnotatedForm>, ) -> Result<()>
pub async fn only_insert_words( &self, document_id: DocumentId, forms: Vec<AnnotatedForm>, ) -> Result<()>
pub async fn insert_lexical_words<'a>( &self, tx: &mut Transaction<'a, Postgres>, forms: Vec<AnnotatedForm>, ) -> Result<()>
sourcepub async fn insert_word<'a>(
&self,
tx: &mut Transaction<'a, Postgres>,
form: AnnotatedForm,
document_id: Uuid,
page_id: Option<Uuid>,
char_range: Option<PgRange<i64>>,
) -> Result<Uuid>
pub async fn insert_word<'a>( &self, tx: &mut Transaction<'a, Postgres>, form: AnnotatedForm, document_id: Uuid, page_id: Option<Uuid>, char_range: Option<PgRange<i64>>, ) -> Result<Uuid>
This is only used for
pub async fn insert_morpheme_system( &self, short_name: String, title: String, ) -> Result<Uuid>
pub async fn insert_abstract_tag(&self, tag: AbstractMorphemeTag) -> Result<()>
pub async fn insert_custom_abstract_tag( &self, tag: AbstractMorphemeTag, ) -> Result<Uuid>
pub async fn insert_custom_morpheme_tag( &self, form: MorphemeTag, system_id: Uuid, ) -> Result<()>
pub async fn insert_morpheme_tag( &self, form: MorphemeTag, system_id: Uuid, ) -> Result<()>
pub async fn document_id_from_name( &self, short_name: &str, ) -> Result<Option<DocumentId>>
pub async fn insert_morpheme_relations( &self, links: Vec<LexicalConnection>, ) -> Result<()>
pub async fn collection(&self, slug: String) -> Result<DocumentCollection>
pub async fn document_group_id_by_slug( &self, slug: &str, ) -> Result<Option<Uuid>>
sourcepub async fn collection_slug_by_id(
&self,
collection_id: Uuid,
) -> Result<Option<String>>
pub async fn collection_slug_by_id( &self, collection_id: Uuid, ) -> Result<Option<String>>
Get collection slug by collection ID
pub async fn chapter( &self, collection_slug: String, chapter_slug: String, ) -> Result<Option<CollectionChapter>>
pub async fn chapters_by_document( &self, document_slug: String, ) -> Result<Option<Vec<CollectionChapter>>>
sourcepub async fn insert_chapter_contributor_attribution(
&self,
chapter_id: &Uuid,
contributor_id: &Uuid,
contribution_role: &str,
) -> Result<()>
pub async fn insert_chapter_contributor_attribution( &self, chapter_id: &Uuid, contributor_id: &Uuid, contribution_role: &str, ) -> Result<()>
Insert a contributor attribution for a chapter
sourcepub async fn insert_document_into_edited_collection(
&self,
document: AnnotatedDoc,
collection_id: Uuid,
) -> Result<(DocumentId, Uuid)>
pub async fn insert_document_into_edited_collection( &self, document: AnnotatedDoc, collection_id: Uuid, ) -> Result<(DocumentId, Uuid)>
Insert a document into an edited collection and create a new chapter for it Returns (document_id, chapter_id) dennis todo : please clean this up
pub async fn abbreviation_id_from_short_name( &self, short_name: &str, ) -> Result<Uuid>
pub async fn upsert_page(&self, input: NewPageInput) -> Result<String>
pub async fn page_by_path(&self, path: &str) -> Result<Option<Page>>
Trait Implementations§
source§impl Loader<ChaptersInCollection> for Database
impl Loader<ChaptersInCollection> for Database
source§type Value = Vec<CollectionChapter>
type Value = Vec<CollectionChapter>
source§fn load<'life0, 'life1, 'async_trait>(
&'life0 self,
keys: &'life1 [ChaptersInCollection],
) -> Pin<Box<dyn Future<Output = Result<HashMap<ChaptersInCollection, Self::Value>, Self::Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn load<'life0, 'life1, 'async_trait>(
&'life0 self,
keys: &'life1 [ChaptersInCollection],
) -> Pin<Box<dyn Future<Output = Result<HashMap<ChaptersInCollection, Self::Value>, Self::Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
keys.source§impl Loader<ContributorsForDocument> for Database
impl Loader<ContributorsForDocument> for Database
source§type Value = Vec<Contributor>
type Value = Vec<Contributor>
source§fn load<'life0, 'life1, 'async_trait>(
&'life0 self,
keys: &'life1 [ContributorsForDocument],
) -> Pin<Box<dyn Future<Output = Result<HashMap<ContributorsForDocument, Self::Value>, Self::Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn load<'life0, 'life1, 'async_trait>(
&'life0 self,
keys: &'life1 [ContributorsForDocument],
) -> Pin<Box<dyn Future<Output = Result<HashMap<ContributorsForDocument, Self::Value>, Self::Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
keys.source§impl Loader<CreatorsForDocument> for Database
impl Loader<CreatorsForDocument> for Database
source§fn load<'life0, 'life1, 'async_trait>(
&'life0 self,
keys: &'life1 [CreatorsForDocument],
) -> Pin<Box<dyn Future<Output = Result<HashMap<CreatorsForDocument, Self::Value>, Self::Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn load<'life0, 'life1, 'async_trait>(
&'life0 self,
keys: &'life1 [CreatorsForDocument],
) -> Pin<Box<dyn Future<Output = Result<HashMap<CreatorsForDocument, Self::Value>, Self::Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
keys.source§impl Loader<DocumentId> for Database
impl Loader<DocumentId> for Database
source§type Value = AnnotatedDoc
type Value = AnnotatedDoc
source§fn load<'life0, 'life1, 'async_trait>(
&'life0 self,
keys: &'life1 [DocumentId],
) -> Pin<Box<dyn Future<Output = Result<HashMap<DocumentId, Self::Value>, Self::Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn load<'life0, 'life1, 'async_trait>(
&'life0 self,
keys: &'life1 [DocumentId],
) -> Pin<Box<dyn Future<Output = Result<HashMap<DocumentId, Self::Value>, Self::Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
keys.source§impl Loader<DocumentShortName> for Database
impl Loader<DocumentShortName> for Database
source§type Value = AnnotatedDoc
type Value = AnnotatedDoc
source§fn load<'life0, 'life1, 'async_trait>(
&'life0 self,
keys: &'life1 [DocumentShortName],
) -> Pin<Box<dyn Future<Output = Result<HashMap<DocumentShortName, Self::Value>, Self::Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn load<'life0, 'life1, 'async_trait>(
&'life0 self,
keys: &'life1 [DocumentShortName],
) -> Pin<Box<dyn Future<Output = Result<HashMap<DocumentShortName, Self::Value>, Self::Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
keys.source§impl Loader<EditedCollectionDetails> for Database
impl Loader<EditedCollectionDetails> for Database
source§type Value = EditedCollection
type Value = EditedCollection
source§fn load<'life0, 'life1, 'async_trait>(
&'life0 self,
keys: &'life1 [EditedCollectionDetails],
) -> Pin<Box<dyn Future<Output = Result<HashMap<EditedCollectionDetails, Self::Value>, Self::Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn load<'life0, 'life1, 'async_trait>(
&'life0 self,
keys: &'life1 [EditedCollectionDetails],
) -> Pin<Box<dyn Future<Output = Result<HashMap<EditedCollectionDetails, Self::Value>, Self::Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
keys.source§impl Loader<ImageSourceId> for Database
impl Loader<ImageSourceId> for Database
source§type Value = ImageSource
type Value = ImageSource
source§fn load<'life0, 'life1, 'async_trait>(
&'life0 self,
keys: &'life1 [ImageSourceId],
) -> Pin<Box<dyn Future<Output = Result<HashMap<ImageSourceId, Self::Value>, Self::Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn load<'life0, 'life1, 'async_trait>(
&'life0 self,
keys: &'life1 [ImageSourceId],
) -> Pin<Box<dyn Future<Output = Result<HashMap<ImageSourceId, Self::Value>, Self::Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
keys.source§impl Loader<KeywordsForDocument> for Database
impl Loader<KeywordsForDocument> for Database
source§fn load<'life0, 'life1, 'async_trait>(
&'life0 self,
keys: &'life1 [KeywordsForDocument],
) -> Pin<Box<dyn Future<Output = Result<HashMap<KeywordsForDocument, Self::Value>, Self::Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn load<'life0, 'life1, 'async_trait>(
&'life0 self,
keys: &'life1 [KeywordsForDocument],
) -> Pin<Box<dyn Future<Output = Result<HashMap<KeywordsForDocument, Self::Value>, Self::Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
keys.source§impl Loader<LanguagesForDocument> for Database
impl Loader<LanguagesForDocument> for Database
source§fn load<'life0, 'life1, 'async_trait>(
&'life0 self,
keys: &'life1 [LanguagesForDocument],
) -> Pin<Box<dyn Future<Output = Result<HashMap<LanguagesForDocument, Self::Value>, Self::Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn load<'life0, 'life1, 'async_trait>(
&'life0 self,
keys: &'life1 [LanguagesForDocument],
) -> Pin<Box<dyn Future<Output = Result<HashMap<LanguagesForDocument, Self::Value>, Self::Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
keys.source§impl Loader<PageId> for Database
impl Loader<PageId> for Database
source§fn load<'life0, 'life1, 'async_trait>(
&'life0 self,
_keys: &'life1 [PageId],
) -> Pin<Box<dyn Future<Output = Result<HashMap<PageId, Self::Value>, Self::Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn load<'life0, 'life1, 'async_trait>(
&'life0 self,
_keys: &'life1 [PageId],
) -> Pin<Box<dyn Future<Output = Result<HashMap<PageId, Self::Value>, Self::Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
keys.source§impl Loader<PagesInDocument> for Database
impl Loader<PagesInDocument> for Database
source§type Value = Vec<DocumentPage>
type Value = Vec<DocumentPage>
source§fn load<'life0, 'life1, 'async_trait>(
&'life0 self,
keys: &'life1 [PagesInDocument],
) -> Pin<Box<dyn Future<Output = Result<HashMap<PagesInDocument, Self::Value>, Self::Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn load<'life0, 'life1, 'async_trait>(
&'life0 self,
keys: &'life1 [PagesInDocument],
) -> Pin<Box<dyn Future<Output = Result<HashMap<PagesInDocument, Self::Value>, Self::Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
keys.source§impl Loader<ParagraphsInPage> for Database
impl Loader<ParagraphsInPage> for Database
source§type Value = Vec<DocumentParagraph>
type Value = Vec<DocumentParagraph>
source§fn load<'life0, 'life1, 'async_trait>(
&'life0 self,
keys: &'life1 [ParagraphsInPage],
) -> Pin<Box<dyn Future<Output = Result<HashMap<ParagraphsInPage, Self::Value>, Self::Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn load<'life0, 'life1, 'async_trait>(
&'life0 self,
keys: &'life1 [ParagraphsInPage],
) -> Pin<Box<dyn Future<Output = Result<HashMap<ParagraphsInPage, Self::Value>, Self::Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
keys.source§impl Loader<PartsOfWord> for Database
impl Loader<PartsOfWord> for Database
source§type Value = Vec<WordSegment>
type Value = Vec<WordSegment>
source§fn load<'life0, 'life1, 'async_trait>(
&'life0 self,
keys: &'life1 [PartsOfWord],
) -> Pin<Box<dyn Future<Output = Result<HashMap<PartsOfWord, Self::Value>, Self::Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn load<'life0, 'life1, 'async_trait>(
&'life0 self,
keys: &'life1 [PartsOfWord],
) -> Pin<Box<dyn Future<Output = Result<HashMap<PartsOfWord, Self::Value>, Self::Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
keys.source§impl Loader<PersonFullName> for Database
impl Loader<PersonFullName> for Database
source§type Value = ContributorDetails
type Value = ContributorDetails
source§fn load<'life0, 'life1, 'async_trait>(
&'life0 self,
keys: &'life1 [PersonFullName],
) -> Pin<Box<dyn Future<Output = Result<HashMap<PersonFullName, Self::Value>, Self::Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn load<'life0, 'life1, 'async_trait>(
&'life0 self,
keys: &'life1 [PersonFullName],
) -> Pin<Box<dyn Future<Output = Result<HashMap<PersonFullName, Self::Value>, Self::Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
keys.source§impl Loader<SpatialCoverageForDocument> for Database
impl Loader<SpatialCoverageForDocument> for Database
source§type Value = Vec<SpatialCoverage>
type Value = Vec<SpatialCoverage>
source§fn load<'life0, 'life1, 'async_trait>(
&'life0 self,
keys: &'life1 [SpatialCoverageForDocument],
) -> Pin<Box<dyn Future<Output = Result<HashMap<SpatialCoverageForDocument, Self::Value>, Self::Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn load<'life0, 'life1, 'async_trait>(
&'life0 self,
keys: &'life1 [SpatialCoverageForDocument],
) -> Pin<Box<dyn Future<Output = Result<HashMap<SpatialCoverageForDocument, Self::Value>, Self::Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
keys.source§impl Loader<SubjectHeadingsForDocument> for Database
impl Loader<SubjectHeadingsForDocument> for Database
source§type Value = Vec<SubjectHeading>
type Value = Vec<SubjectHeading>
source§fn load<'life0, 'life1, 'async_trait>(
&'life0 self,
keys: &'life1 [SubjectHeadingsForDocument],
) -> Pin<Box<dyn Future<Output = Result<HashMap<SubjectHeadingsForDocument, Self::Value>, Self::Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn load<'life0, 'life1, 'async_trait>(
&'life0 self,
keys: &'life1 [SubjectHeadingsForDocument],
) -> Pin<Box<dyn Future<Output = Result<HashMap<SubjectHeadingsForDocument, Self::Value>, Self::Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
keys.source§impl Loader<TagForMorpheme> for Database
impl Loader<TagForMorpheme> for Database
source§type Value = MorphemeTag
type Value = MorphemeTag
source§fn load<'life0, 'life1, 'async_trait>(
&'life0 self,
keys: &'life1 [TagForMorpheme],
) -> Pin<Box<dyn Future<Output = Result<HashMap<TagForMorpheme, Self::Value>, Self::Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn load<'life0, 'life1, 'async_trait>(
&'life0 self,
keys: &'life1 [TagForMorpheme],
) -> Pin<Box<dyn Future<Output = Result<HashMap<TagForMorpheme, Self::Value>, Self::Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
keys.source§impl Loader<WordsInParagraph> for Database
impl Loader<WordsInParagraph> for Database
source§type Value = Vec<AnnotatedSeg>
type Value = Vec<AnnotatedSeg>
source§fn load<'life0, 'life1, 'async_trait>(
&'life0 self,
keys: &'life1 [WordsInParagraph],
) -> Pin<Box<dyn Future<Output = Result<HashMap<WordsInParagraph, Self::Value>, Self::Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn load<'life0, 'life1, 'async_trait>(
&'life0 self,
keys: &'life1 [WordsInParagraph],
) -> Pin<Box<dyn Future<Output = Result<HashMap<WordsInParagraph, Self::Value>, Self::Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
keys.Auto Trait Implementations§
impl Freeze for Database
impl !RefUnwindSafe for Database
impl Send for Database
impl Sync for Database
impl Unpin for Database
impl !UnwindSafe for Database
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> Conv for T
impl<T> Conv for T
§impl<T> Conv for T
impl<T> Conv for T
§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self to use its Binary implementation when Debug-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self to use its Display implementation when
Debug-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self to use its Octal implementation when Debug-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self to use its Pointer implementation when
Debug-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self, then passes self.as_ref() into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self, then passes self.as_mut() into the pipe
function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.§impl<T> Pipe for T
impl<T> Pipe for T
§impl<T> PipeAsRef for T
impl<T> PipeAsRef for T
§impl<T> PipeBorrow for T
impl<T> PipeBorrow for T
§impl<T> PipeDeref for T
impl<T> PipeDeref for T
§impl<T> PipeRef for T
impl<T> PipeRef for T
§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow() only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref() only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.§impl<T> Tap for T
impl<T> Tap for T
§fn tap<F, R>(self, func: F) -> Selfwhere
F: FnOnce(&Self) -> R,
fn tap<F, R>(self, func: F) -> Selfwhere
F: FnOnce(&Self) -> R,
§fn tap_dbg<F, R>(self, func: F) -> Selfwhere
F: FnOnce(&Self) -> R,
fn tap_dbg<F, R>(self, func: F) -> Selfwhere
F: FnOnce(&Self) -> R,
tap in debug builds, and does nothing in release builds.§fn tap_mut<F, R>(self, func: F) -> Selfwhere
F: FnOnce(&mut Self) -> R,
fn tap_mut<F, R>(self, func: F) -> Selfwhere
F: FnOnce(&mut Self) -> R,
§fn tap_mut_dbg<F, R>(self, func: F) -> Selfwhere
F: FnOnce(&mut Self) -> R,
fn tap_mut_dbg<F, R>(self, func: F) -> Selfwhere
F: FnOnce(&mut Self) -> R,
tap_mut in debug builds, and does nothing in release builds.§impl<T, U> TapAsRef<U> for Twhere
U: ?Sized,
impl<T, U> TapAsRef<U> for Twhere
U: ?Sized,
§fn tap_ref_dbg<F, R>(self, func: F) -> Self
fn tap_ref_dbg<F, R>(self, func: F) -> Self
tap_ref in debug builds, and does nothing in release builds.§fn tap_ref_mut<F, R>(self, func: F) -> Self
fn tap_ref_mut<F, R>(self, func: F) -> Self
§fn tap_ref_mut_dbg<F, R>(self, func: F) -> Self
fn tap_ref_mut_dbg<F, R>(self, func: F) -> Self
tap_ref_mut in debug builds, and does nothing in release builds.§impl<T, U> TapBorrow<U> for Twhere
U: ?Sized,
impl<T, U> TapBorrow<U> for Twhere
U: ?Sized,
§fn tap_borrow<F, R>(self, func: F) -> Self
fn tap_borrow<F, R>(self, func: F) -> Self
§fn tap_borrow_dbg<F, R>(self, func: F) -> Self
fn tap_borrow_dbg<F, R>(self, func: F) -> Self
tap_borrow in debug builds, and does nothing in release builds.§fn tap_borrow_mut<F, R>(self, func: F) -> Self
fn tap_borrow_mut<F, R>(self, func: F) -> Self
§fn tap_borrow_mut_dbg<F, R>(self, func: F) -> Self
fn tap_borrow_mut_dbg<F, R>(self, func: F) -> Self
tap_borrow_mut in debug builds, and does nothing in release
builds.§impl<T> TapDeref for T
impl<T> TapDeref for T
§fn tap_deref_dbg<F, R>(self, func: F) -> Self
fn tap_deref_dbg<F, R>(self, func: F) -> Self
tap_deref in debug builds, and does nothing in release builds.§fn tap_deref_mut<F, R>(self, func: F) -> Self
fn tap_deref_mut<F, R>(self, func: F) -> Self
self for modification.§fn tap_deref_mut_dbg<F, R>(self, func: F) -> Self
fn tap_deref_mut_dbg<F, R>(self, func: F) -> Self
tap_deref_mut in debug builds, and does nothing in release
builds.