mirror of
https://github.com/ankitects/anki.git
synced 2025-09-18 22:12:21 -04:00
Add links.proto
and backend module
This commit is contained in:
parent
80264c3b56
commit
55e1f178ef
5 changed files with 89 additions and 0 deletions
|
@ -24,6 +24,7 @@ enum ServiceIndex {
|
|||
SERVICE_INDEX_I18N = 12;
|
||||
SERVICE_INDEX_COLLECTION = 13;
|
||||
SERVICE_INDEX_CARDS = 14;
|
||||
SERVICE_INDEX_LINKS = 15;
|
||||
}
|
||||
|
||||
message BackendInit {
|
||||
|
|
38
proto/anki/links.proto
Normal file
38
proto/anki/links.proto
Normal file
|
@ -0,0 +1,38 @@
|
|||
// Copyright: Ankitects Pty Ltd and contributors
|
||||
// License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
||||
|
||||
syntax = "proto3";
|
||||
|
||||
package anki.links;
|
||||
|
||||
import "anki/generic.proto";
|
||||
|
||||
service LinksService {
|
||||
rpc HelpPageLink(HelpPageLinkRequest) returns (generic.String);
|
||||
}
|
||||
|
||||
message HelpPageLinkRequest {
|
||||
enum HelpPage {
|
||||
NOTE_TYPE = 0;
|
||||
BROWSING = 1;
|
||||
BROWSING_FIND_AND_REPLACE = 2;
|
||||
BROWSING_NOTES_MENU = 3;
|
||||
KEYBOARD_SHORTCUTS = 4;
|
||||
EDITING = 5;
|
||||
ADDING_CARD_AND_NOTE = 6;
|
||||
ADDING_A_NOTE_TYPE = 7;
|
||||
LATEX = 8;
|
||||
PREFERENCES = 9;
|
||||
INDEX = 10;
|
||||
TEMPLATES = 11;
|
||||
FILTERED_DECK = 12;
|
||||
IMPORTING = 13;
|
||||
CUSTOMIZING_FIELDS = 14;
|
||||
DECK_OPTIONS = 15;
|
||||
EDITING_FEATURES = 16;
|
||||
}
|
||||
oneof page {
|
||||
HelpPage variant = 1;
|
||||
string literal = 2;
|
||||
}
|
||||
}
|
46
rslib/src/backend/links.rs
Normal file
46
rslib/src/backend/links.rs
Normal file
|
@ -0,0 +1,46 @@
|
|||
// Copyright: Ankitects Pty Ltd and contributors
|
||||
// License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
||||
|
||||
use super::Backend;
|
||||
pub(super) use crate::backend_proto::links_service::Service as LinksService;
|
||||
use crate::{
|
||||
backend_proto as pb,
|
||||
backend_proto::links::help_page_link_request::{HelpPage as ProtoHelpPage, Page},
|
||||
links::{help_page_link, help_page_link_from_str, HelpPage},
|
||||
prelude::*,
|
||||
};
|
||||
|
||||
impl LinksService for Backend {
|
||||
fn help_page_link(&self, input: pb::HelpPageLinkRequest) -> Result<pb::String> {
|
||||
Ok(match input.page {
|
||||
Some(Page::Variant(var)) => help_page_link(var.into()),
|
||||
Some(Page::Literal(s)) => help_page_link_from_str(&s),
|
||||
None => help_page_link_from_str(""),
|
||||
}
|
||||
.into())
|
||||
}
|
||||
}
|
||||
|
||||
impl From<i32> for HelpPage {
|
||||
fn from(page: i32) -> Self {
|
||||
match ProtoHelpPage::from_i32(page).unwrap_or(ProtoHelpPage::Index) {
|
||||
ProtoHelpPage::NoteType => HelpPage::Notetype,
|
||||
ProtoHelpPage::Browsing => HelpPage::Browsing,
|
||||
ProtoHelpPage::BrowsingFindAndReplace => HelpPage::BrowsingFindAndReplace,
|
||||
ProtoHelpPage::BrowsingNotesMenu => HelpPage::BrowsingNotesMenu,
|
||||
ProtoHelpPage::KeyboardShortcuts => HelpPage::KeyboardShortcuts,
|
||||
ProtoHelpPage::Editing => HelpPage::Editing,
|
||||
ProtoHelpPage::AddingCardAndNote => HelpPage::AddingCardAndNote,
|
||||
ProtoHelpPage::AddingANoteType => HelpPage::AddingNotetype,
|
||||
ProtoHelpPage::Latex => HelpPage::Latex,
|
||||
ProtoHelpPage::Preferences => HelpPage::Preferences,
|
||||
ProtoHelpPage::Index => HelpPage::Index,
|
||||
ProtoHelpPage::Templates => HelpPage::Templates,
|
||||
ProtoHelpPage::FilteredDeck => HelpPage::FilteredDeck,
|
||||
ProtoHelpPage::Importing => HelpPage::Importing,
|
||||
ProtoHelpPage::CustomizingFields => HelpPage::CustomizingFields,
|
||||
ProtoHelpPage::DeckOptions => HelpPage::DeckOptions,
|
||||
ProtoHelpPage::EditingFeatures => HelpPage::EditingFeatures,
|
||||
}
|
||||
}
|
||||
}
|
|
@ -15,6 +15,7 @@ mod decks;
|
|||
mod error;
|
||||
mod generic;
|
||||
mod i18n;
|
||||
mod links;
|
||||
mod media;
|
||||
mod notes;
|
||||
mod notetypes;
|
||||
|
@ -44,6 +45,7 @@ use self::{
|
|||
deckconfig::DeckConfigService,
|
||||
decks::DecksService,
|
||||
i18n::I18nService,
|
||||
links::LinksService,
|
||||
media::MediaService,
|
||||
notes::NotesService,
|
||||
notetypes::NotetypesService,
|
||||
|
@ -132,6 +134,7 @@ impl Backend {
|
|||
pb::ServiceIndex::Stats => StatsService::run_method(self, method, input),
|
||||
pb::ServiceIndex::Search => SearchService::run_method(self, method, input),
|
||||
pb::ServiceIndex::I18n => I18nService::run_method(self, method, input),
|
||||
pb::ServiceIndex::Links => LinksService::run_method(self, method, input),
|
||||
pb::ServiceIndex::Collection => CollectionService::run_method(self, method, input),
|
||||
pb::ServiceIndex::Cards => CardsService::run_method(self, method, input),
|
||||
})
|
||||
|
|
|
@ -22,6 +22,7 @@ protobuf!(deckconfig);
|
|||
protobuf!(decks);
|
||||
protobuf!(generic);
|
||||
protobuf!(i18n);
|
||||
protobuf!(links);
|
||||
protobuf!(media);
|
||||
protobuf!(notes);
|
||||
protobuf!(notetypes);
|
||||
|
|
Loading…
Reference in a new issue