mirror of
https://github.com/ankitects/anki.git
synced 2025-09-19 14:32:22 -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_I18N = 12;
|
||||||
SERVICE_INDEX_COLLECTION = 13;
|
SERVICE_INDEX_COLLECTION = 13;
|
||||||
SERVICE_INDEX_CARDS = 14;
|
SERVICE_INDEX_CARDS = 14;
|
||||||
|
SERVICE_INDEX_LINKS = 15;
|
||||||
}
|
}
|
||||||
|
|
||||||
message BackendInit {
|
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 error;
|
||||||
mod generic;
|
mod generic;
|
||||||
mod i18n;
|
mod i18n;
|
||||||
|
mod links;
|
||||||
mod media;
|
mod media;
|
||||||
mod notes;
|
mod notes;
|
||||||
mod notetypes;
|
mod notetypes;
|
||||||
|
@ -44,6 +45,7 @@ use self::{
|
||||||
deckconfig::DeckConfigService,
|
deckconfig::DeckConfigService,
|
||||||
decks::DecksService,
|
decks::DecksService,
|
||||||
i18n::I18nService,
|
i18n::I18nService,
|
||||||
|
links::LinksService,
|
||||||
media::MediaService,
|
media::MediaService,
|
||||||
notes::NotesService,
|
notes::NotesService,
|
||||||
notetypes::NotetypesService,
|
notetypes::NotetypesService,
|
||||||
|
@ -132,6 +134,7 @@ impl Backend {
|
||||||
pb::ServiceIndex::Stats => StatsService::run_method(self, method, input),
|
pb::ServiceIndex::Stats => StatsService::run_method(self, method, input),
|
||||||
pb::ServiceIndex::Search => SearchService::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::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::Collection => CollectionService::run_method(self, method, input),
|
||||||
pb::ServiceIndex::Cards => CardsService::run_method(self, method, input),
|
pb::ServiceIndex::Cards => CardsService::run_method(self, method, input),
|
||||||
})
|
})
|
||||||
|
|
|
@ -22,6 +22,7 @@ protobuf!(deckconfig);
|
||||||
protobuf!(decks);
|
protobuf!(decks);
|
||||||
protobuf!(generic);
|
protobuf!(generic);
|
||||||
protobuf!(i18n);
|
protobuf!(i18n);
|
||||||
|
protobuf!(links);
|
||||||
protobuf!(media);
|
protobuf!(media);
|
||||||
protobuf!(notes);
|
protobuf!(notes);
|
||||||
protobuf!(notetypes);
|
protobuf!(notetypes);
|
||||||
|
|
Loading…
Reference in a new issue