pub struct AppService { /* private fields */ }Implementations§
Source§impl AppService
impl AppService
Sourcepub fn card_list(&self, pkg: Option<&str>) -> Result<String, String>
pub fn card_list(&self, pkg: Option<&str>) -> Result<String, String>
List Cards as JSON summaries, optionally filtered by package.
Sourcepub fn card_get(&self, card_id: &str) -> Result<String, String>
pub fn card_get(&self, card_id: &str) -> Result<String, String>
Fetch full Card body (Tier 1) by id.
Sourcepub fn card_find(
&self,
pkg: Option<String>,
scenario: Option<String>,
model: Option<String>,
sort: Option<String>,
limit: Option<usize>,
min_pass_rate: Option<f64>,
) -> Result<String, String>
pub fn card_find( &self, pkg: Option<String>, scenario: Option<String>, model: Option<String>, sort: Option<String>, limit: Option<usize>, min_pass_rate: Option<f64>, ) -> Result<String, String>
Query Cards with sort, filter, and limit.
Sourcepub fn card_get_by_alias(&self, name: &str) -> Result<String, String>
pub fn card_get_by_alias(&self, name: &str) -> Result<String, String>
Resolve alias then fetch the full Card.
Sourcepub fn card_alias_list(&self, pkg: Option<&str>) -> Result<String, String>
pub fn card_alias_list(&self, pkg: Option<&str>) -> Result<String, String>
List aliases, optionally filtered by package.
Sourcepub fn card_alias_set(
&self,
name: &str,
card_id: &str,
pkg: Option<&str>,
note: Option<&str>,
) -> Result<String, String>
pub fn card_alias_set( &self, name: &str, card_id: &str, pkg: Option<&str>, note: Option<&str>, ) -> Result<String, String>
Pin or rebind a mutable alias to a Card.
Sourcepub fn card_append(
&self,
card_id: &str,
fields: Value,
) -> Result<String, String>
pub fn card_append( &self, card_id: &str, fields: Value, ) -> Result<String, String>
Additive-only annotation — new top-level keys only.
Sourcepub async fn card_install(&self, url: String) -> Result<String, String>
pub async fn card_install(&self, url: String) -> Result<String, String>
Install Cards from a Card Collection repo (Git URL or local path).
A Card Collection is identified by alc_cards.toml at the repo root.
Each subdirectory is treated as a package name, and *.toml card files
within are imported into ~/.algocline/cards/{pkg}/.
Source§impl AppService
impl AppService
Sourcepub async fn eval(
&self,
scenario: Option<String>,
scenario_file: Option<String>,
scenario_name: Option<String>,
strategy: &str,
strategy_opts: Option<Value>,
auto_card: bool,
) -> Result<String, String>
pub async fn eval( &self, scenario: Option<String>, scenario_file: Option<String>, scenario_name: Option<String>, strategy: &str, strategy_opts: Option<Value>, auto_card: bool, ) -> Result<String, String>
Run an evalframe evaluation suite via alc.eval().
Resolves the scenario from one of three input modes (inline/file/name),
injects the std global shim, and delegates to alc.eval() in prelude
which handles evalframe loading, provider wiring, and optional Card
emission.
§Security: strategy is not sanitized
strategy is interpolated into a Lua string literal without escaping.
This is intentional — algocline runs Lua in the caller’s own process
with full ambient authority, so Lua injection does not cross a trust
boundary.
Sourcepub fn eval_history(
&self,
strategy: Option<&str>,
limit: usize,
) -> Result<String, String>
pub fn eval_history( &self, strategy: Option<&str>, limit: usize, ) -> Result<String, String>
List eval history, optionally filtered by strategy.
Sourcepub fn eval_detail(&self, eval_id: &str) -> Result<String, String>
pub fn eval_detail(&self, eval_id: &str) -> Result<String, String>
View a specific eval result by ID.
Sourcepub async fn eval_compare(
&self,
eval_id_a: &str,
eval_id_b: &str,
) -> Result<String, String>
pub async fn eval_compare( &self, eval_id_a: &str, eval_id_b: &str, ) -> Result<String, String>
Compare two eval results with statistical significance testing.
Delegates to evalframe’s stats.welch_t (single source of truth for
t-distribution table and test logic). Reads persisted aggregated.scores
from each eval result — no re-computation of descriptive statistics.
The comparison result is persisted to ~/.algocline/evals/ so repeated
lookups of the same pair are file reads only.
Source§impl AppService
impl AppService
Sourcepub fn hub_reindex(
&self,
output_path: Option<&str>,
source_dir: Option<&str>,
) -> Result<String, String>
pub fn hub_reindex( &self, output_path: Option<&str>, source_dir: Option<&str>, ) -> Result<String, String>
Generate a hub index from a packages directory.
When source_dir is provided, scans that directory (e.g. a
repo checkout) — pure metadata extraction, no manifest or card
data mixed in. When omitted, scans ~/.algocline/packages/.
Writes the index to output_path (for CI / publishing).
Does NOT touch the remote search cache.
Sourcepub fn hub_info(&self, pkg: &str) -> Result<String, String>
pub fn hub_info(&self, pkg: &str) -> Result<String, String>
Show detailed information for a single package.
Aggregates package metadata (from index or local init.lua),
all Cards, aliases, and eval stats into one response.
Sourcepub fn hub_search(
&self,
query: Option<&str>,
category: Option<&str>,
installed_only: Option<bool>,
limit: Option<usize>,
) -> Result<String, String>
pub fn hub_search( &self, query: Option<&str>, category: Option<&str>, installed_only: Option<bool>, limit: Option<usize>, ) -> Result<String, String>
Search packages across remote indices + local state.
Index URLs are discovered from hub registries, manifest sources,
and AUTO_INSTALL_SOURCES. Each source is cached independently.
Source§impl AppService
impl AppService
Source§impl AppService
impl AppService
Sourcepub async fn add_note(
&self,
session_id: &str,
content: &str,
title: Option<&str>,
) -> Result<String, String>
pub async fn add_note( &self, session_id: &str, content: &str, title: Option<&str>, ) -> Result<String, String>
Append a note to a session’s log file.
Sourcepub async fn log_view(
&self,
session_id: Option<&str>,
limit: Option<usize>,
max_chars: Option<usize>,
) -> Result<String, String>
pub async fn log_view( &self, session_id: Option<&str>, limit: Option<usize>, max_chars: Option<usize>, ) -> Result<String, String>
View session logs.
Sourcepub fn info(&self) -> String
pub fn info(&self) -> String
Return diagnostic info about the current configuration (mise doctor style).
Sourcepub fn stats(
&self,
strategy_filter: Option<&str>,
days: Option<u64>,
) -> Result<String, String>
pub fn stats( &self, strategy_filter: Option<&str>, days: Option<u64>, ) -> Result<String, String>
Aggregate stats across all logged sessions.
Scans .meta.json files (with .json fallback for legacy logs).
Optional filters: strategy (exact match), days (last N days).
§Legacy log compatibility
Token fields (prompt_tokens, response_tokens) were introduced in v0.12.
Logs written by earlier versions lack these fields entirely. When absent,
the aggregation treats them as 0 (via unwrap_or(0)) — the same
pattern used for other numeric fields (elapsed_ms, total_prompt_chars,
etc.). This means per-strategy total_tokens may under-report if the
dataset includes pre-v0.12 sessions.
Source§impl AppService
impl AppService
Source§impl AppService
impl AppService
Source§impl AppService
impl AppService
Sourcepub async fn pkg_list(
&self,
project_root: Option<String>,
) -> Result<String, String>
pub async fn pkg_list( &self, project_root: Option<String>, ) -> Result<String, String>
List installed packages with metadata, showing the full override chain.
When project_root is provided (or resolvable), project-local packages
from alc.toml are prepended with scope: "project", merged with
version/source info from alc.lock. Global packages carry scope: "global".
If a project package and a global package share the same name, the project
one is active: true and the global one active: false.
Source§impl AppService
impl AppService
Sourcepub async fn pkg_remove(
&self,
name: &str,
project_root: Option<String>,
version: Option<String>,
) -> Result<String, String>
pub async fn pkg_remove( &self, name: &str, project_root: Option<String>, version: Option<String>, ) -> Result<String, String>
Remove a package declaration from alc.toml and alc.lock.
Requires an alc.toml to be found via project_root or ancestor walk.
Physical files in ~/.algocline/packages/ are not deleted.
name: package name to remove.project_root: optional explicit project root.version: optional version constraint (when specified, only removes the matchingalc.lockentry; omit to remove any version).
Source§impl AppService
impl AppService
Sourcepub async fn pkg_link(
&self,
path: String,
name: Option<String>,
force: Option<bool>,
) -> Result<String, String>
pub async fn pkg_link( &self, path: String, name: Option<String>, force: Option<bool>, ) -> Result<String, String>
Link a local directory as a package by creating a symlink in the cache.
path: source directory to link (absolute or cwd-relative).
name: optional package name override (single package mode only).
force: if true, overwrite an existing real directory at the destination.
Existing symlinks (including dangling) are always overwritten.
Source§impl AppService
impl AppService
Source§impl AppService
impl AppService
Sourcepub async fn run(
&self,
code: Option<String>,
code_file: Option<String>,
ctx: Option<Value>,
project_root: Option<String>,
) -> Result<String, String>
pub async fn run( &self, code: Option<String>, code_file: Option<String>, ctx: Option<Value>, project_root: Option<String>, ) -> Result<String, String>
Execute Lua code with optional JSON context.
project_root — optional absolute path to the project root containing
alc.lock. Falls back to ALC_PROJECT_ROOT env or ancestor walk.
Sourcepub async fn advice(
&self,
strategy: &str,
task: Option<String>,
opts: Option<Value>,
project_root: Option<String>,
) -> Result<String, String>
pub async fn advice( &self, strategy: &str, task: Option<String>, opts: Option<Value>, project_root: Option<String>, ) -> Result<String, String>
Apply a built-in strategy to a task.
If the requested package is not installed, automatically installs the bundled package collection from GitHub before executing.
project_root — optional absolute path to the project root containing
alc.lock. Falls back to ALC_PROJECT_ROOT env or ancestor walk.
Sourcepub async fn continue_batch(
&self,
session_id: &str,
responses: Vec<QueryResponse>,
) -> Result<String, String>
pub async fn continue_batch( &self, session_id: &str, responses: Vec<QueryResponse>, ) -> Result<String, String>
Continue a paused execution — batch feed.
Source§impl AppService
impl AppService
Source§impl AppService
impl AppService
Sourcepub async fn status(&self, session_id: Option<&str>) -> Result<String, String>
pub async fn status(&self, session_id: Option<&str>) -> Result<String, String>
Snapshot of all active sessions for external observation.
Returns JSON with session status, metrics, progress, and strategy name.
Only includes sessions currently held in the registry (paused, awaiting
host LLM responses). Completed sessions are not listed here — use
alc_log_view for historical data.
Source§impl AppService
impl AppService
Source§impl AppService
impl AppService
Trait Implementations§
Source§impl Clone for AppService
impl Clone for AppService
Source§fn clone(&self) -> AppService
fn clone(&self) -> AppService
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl EngineApi for AppService
Delegates each EngineApi method to the corresponding AppService
inherent method via fully-qualified syntax (AppService::method(self, …)).
impl EngineApi for AppService
Delegates each EngineApi method to the corresponding AppService
inherent method via fully-qualified syntax (AppService::method(self, …)).
This avoids ambiguity between the trait method and the inherent method of the same name, preventing accidental infinite recursion if the inherent method is ever removed or renamed.
Source§fn run<'life0, 'async_trait>(
&'life0 self,
code: Option<String>,
code_file: Option<String>,
ctx: Option<Value>,
project_root: Option<String>,
) -> Pin<Box<dyn Future<Output = Result<String, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn run<'life0, 'async_trait>(
&'life0 self,
code: Option<String>,
code_file: Option<String>,
ctx: Option<Value>,
project_root: Option<String>,
) -> Pin<Box<dyn Future<Output = Result<String, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn advice<'life0, 'life1, 'async_trait>(
&'life0 self,
strategy: &'life1 str,
task: Option<String>,
opts: Option<Value>,
project_root: Option<String>,
) -> Pin<Box<dyn Future<Output = Result<String, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn advice<'life0, 'life1, 'async_trait>(
&'life0 self,
strategy: &'life1 str,
task: Option<String>,
opts: Option<Value>,
project_root: Option<String>,
) -> Pin<Box<dyn Future<Output = Result<String, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn continue_single<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
response: String,
query_id: Option<&'life2 str>,
usage: Option<TokenUsage>,
) -> Pin<Box<dyn Future<Output = Result<String, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn continue_single<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
response: String,
query_id: Option<&'life2 str>,
usage: Option<TokenUsage>,
) -> Pin<Box<dyn Future<Output = Result<String, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Source§fn continue_batch<'life0, 'life1, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
responses: Vec<QueryResponse>,
) -> Pin<Box<dyn Future<Output = Result<String, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn continue_batch<'life0, 'life1, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
responses: Vec<QueryResponse>,
) -> Pin<Box<dyn Future<Output = Result<String, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn status<'life0, 'life1, 'async_trait>(
&'life0 self,
session_id: Option<&'life1 str>,
) -> Pin<Box<dyn Future<Output = Result<String, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn status<'life0, 'life1, 'async_trait>(
&'life0 self,
session_id: Option<&'life1 str>,
) -> Pin<Box<dyn Future<Output = Result<String, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn eval<'life0, 'life1, 'async_trait>(
&'life0 self,
scenario: Option<String>,
scenario_file: Option<String>,
scenario_name: Option<String>,
strategy: &'life1 str,
strategy_opts: Option<Value>,
auto_card: bool,
) -> Pin<Box<dyn Future<Output = Result<String, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn eval<'life0, 'life1, 'async_trait>(
&'life0 self,
scenario: Option<String>,
scenario_file: Option<String>,
scenario_name: Option<String>,
strategy: &'life1 str,
strategy_opts: Option<Value>,
auto_card: bool,
) -> Pin<Box<dyn Future<Output = Result<String, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn eval_history<'life0, 'life1, 'async_trait>(
&'life0 self,
strategy: Option<&'life1 str>,
limit: usize,
) -> Pin<Box<dyn Future<Output = Result<String, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn eval_history<'life0, 'life1, 'async_trait>(
&'life0 self,
strategy: Option<&'life1 str>,
limit: usize,
) -> Pin<Box<dyn Future<Output = Result<String, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn eval_detail<'life0, 'life1, 'async_trait>(
&'life0 self,
eval_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<String, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn eval_detail<'life0, 'life1, 'async_trait>(
&'life0 self,
eval_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<String, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn eval_compare<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
eval_id_a: &'life1 str,
eval_id_b: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<String, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn eval_compare<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
eval_id_a: &'life1 str,
eval_id_b: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<String, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Source§fn scenario_list<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<String, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn scenario_list<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<String, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn scenario_show<'life0, 'life1, 'async_trait>(
&'life0 self,
name: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<String, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn scenario_show<'life0, 'life1, 'async_trait>(
&'life0 self,
name: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<String, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn scenario_install<'life0, 'async_trait>(
&'life0 self,
url: String,
) -> Pin<Box<dyn Future<Output = Result<String, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn scenario_install<'life0, 'async_trait>(
&'life0 self,
url: String,
) -> Pin<Box<dyn Future<Output = Result<String, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn pkg_link<'life0, 'async_trait>(
&'life0 self,
path: String,
name: Option<String>,
force: Option<bool>,
) -> Pin<Box<dyn Future<Output = Result<String, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn pkg_link<'life0, 'async_trait>(
&'life0 self,
path: String,
name: Option<String>,
force: Option<bool>,
) -> Pin<Box<dyn Future<Output = Result<String, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn pkg_unlink<'life0, 'async_trait>(
&'life0 self,
name: String,
) -> Pin<Box<dyn Future<Output = Result<String, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn pkg_unlink<'life0, 'async_trait>(
&'life0 self,
name: String,
) -> Pin<Box<dyn Future<Output = Result<String, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
~/.algocline/packages/. Read moreSource§fn pkg_list<'life0, 'async_trait>(
&'life0 self,
project_root: Option<String>,
) -> Pin<Box<dyn Future<Output = Result<String, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn pkg_list<'life0, 'async_trait>(
&'life0 self,
project_root: Option<String>,
) -> Pin<Box<dyn Future<Output = Result<String, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn pkg_install<'life0, 'async_trait>(
&'life0 self,
url: String,
name: Option<String>,
) -> Pin<Box<dyn Future<Output = Result<String, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn pkg_install<'life0, 'async_trait>(
&'life0 self,
url: String,
name: Option<String>,
) -> Pin<Box<dyn Future<Output = Result<String, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn pkg_remove<'life0, 'life1, 'async_trait>(
&'life0 self,
name: &'life1 str,
project_root: Option<String>,
version: Option<String>,
) -> Pin<Box<dyn Future<Output = Result<String, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn pkg_remove<'life0, 'life1, 'async_trait>(
&'life0 self,
name: &'life1 str,
project_root: Option<String>,
version: Option<String>,
) -> Pin<Box<dyn Future<Output = Result<String, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn add_note<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
content: &'life2 str,
title: Option<&'life3 str>,
) -> Pin<Box<dyn Future<Output = Result<String, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn add_note<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
content: &'life2 str,
title: Option<&'life3 str>,
) -> Pin<Box<dyn Future<Output = Result<String, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Source§fn log_view<'life0, 'life1, 'async_trait>(
&'life0 self,
session_id: Option<&'life1 str>,
limit: Option<usize>,
max_chars: Option<usize>,
) -> Pin<Box<dyn Future<Output = Result<String, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn log_view<'life0, 'life1, 'async_trait>(
&'life0 self,
session_id: Option<&'life1 str>,
limit: Option<usize>,
max_chars: Option<usize>,
) -> Pin<Box<dyn Future<Output = Result<String, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn stats<'life0, 'life1, 'async_trait>(
&'life0 self,
strategy_filter: Option<&'life1 str>,
days: Option<u64>,
) -> Pin<Box<dyn Future<Output = Result<String, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn stats<'life0, 'life1, 'async_trait>(
&'life0 self,
strategy_filter: Option<&'life1 str>,
days: Option<u64>,
) -> Pin<Box<dyn Future<Output = Result<String, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn init<'life0, 'async_trait>(
&'life0 self,
project_root: Option<String>,
) -> Pin<Box<dyn Future<Output = Result<String, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn init<'life0, 'async_trait>(
&'life0 self,
project_root: Option<String>,
) -> Pin<Box<dyn Future<Output = Result<String, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
alc.toml in the given project root. Read moreSource§fn update<'life0, 'async_trait>(
&'life0 self,
project_root: Option<String>,
) -> Pin<Box<dyn Future<Output = Result<String, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn update<'life0, 'async_trait>(
&'life0 self,
project_root: Option<String>,
) -> Pin<Box<dyn Future<Output = Result<String, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn migrate<'life0, 'async_trait>(
&'life0 self,
project_root: Option<String>,
) -> Pin<Box<dyn Future<Output = Result<String, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn migrate<'life0, 'async_trait>(
&'life0 self,
project_root: Option<String>,
) -> Pin<Box<dyn Future<Output = Result<String, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn card_list<'life0, 'async_trait>(
&'life0 self,
pkg: Option<String>,
) -> Pin<Box<dyn Future<Output = Result<String, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn card_list<'life0, 'async_trait>(
&'life0 self,
pkg: Option<String>,
) -> Pin<Box<dyn Future<Output = Result<String, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn card_get<'life0, 'life1, 'async_trait>(
&'life0 self,
card_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<String, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn card_get<'life0, 'life1, 'async_trait>(
&'life0 self,
card_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<String, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn card_find<'life0, 'async_trait>(
&'life0 self,
pkg: Option<String>,
scenario: Option<String>,
model: Option<String>,
sort: Option<String>,
limit: Option<usize>,
min_pass_rate: Option<f64>,
) -> Pin<Box<dyn Future<Output = Result<String, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn card_find<'life0, 'async_trait>(
&'life0 self,
pkg: Option<String>,
scenario: Option<String>,
model: Option<String>,
sort: Option<String>,
limit: Option<usize>,
min_pass_rate: Option<f64>,
) -> Pin<Box<dyn Future<Output = Result<String, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn card_alias_list<'life0, 'async_trait>(
&'life0 self,
pkg: Option<String>,
) -> Pin<Box<dyn Future<Output = Result<String, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn card_alias_list<'life0, 'async_trait>(
&'life0 self,
pkg: Option<String>,
) -> Pin<Box<dyn Future<Output = Result<String, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn card_get_by_alias<'life0, 'life1, 'async_trait>(
&'life0 self,
name: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<String, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn card_get_by_alias<'life0, 'life1, 'async_trait>(
&'life0 self,
name: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<String, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn card_alias_set<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
name: &'life1 str,
card_id: &'life2 str,
pkg: Option<String>,
note: Option<String>,
) -> Pin<Box<dyn Future<Output = Result<String, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn card_alias_set<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
name: &'life1 str,
card_id: &'life2 str,
pkg: Option<String>,
note: Option<String>,
) -> Pin<Box<dyn Future<Output = Result<String, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Source§fn card_append<'life0, 'life1, 'async_trait>(
&'life0 self,
card_id: &'life1 str,
fields: Value,
) -> Pin<Box<dyn Future<Output = Result<String, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn card_append<'life0, 'life1, 'async_trait>(
&'life0 self,
card_id: &'life1 str,
fields: Value,
) -> Pin<Box<dyn Future<Output = Result<String, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn card_install<'life0, 'async_trait>(
&'life0 self,
url: String,
) -> Pin<Box<dyn Future<Output = Result<String, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn card_install<'life0, 'async_trait>(
&'life0 self,
url: String,
) -> Pin<Box<dyn Future<Output = Result<String, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn card_samples<'life0, 'life1, 'async_trait>(
&'life0 self,
card_id: &'life1 str,
offset: Option<usize>,
limit: Option<usize>,
) -> Pin<Box<dyn Future<Output = Result<String, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn card_samples<'life0, 'life1, 'async_trait>(
&'life0 self,
card_id: &'life1 str,
offset: Option<usize>,
limit: Option<usize>,
) -> Pin<Box<dyn Future<Output = Result<String, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn hub_reindex<'life0, 'async_trait>(
&'life0 self,
output_path: Option<String>,
source_dir: Option<String>,
) -> Pin<Box<dyn Future<Output = Result<String, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn hub_reindex<'life0, 'async_trait>(
&'life0 self,
output_path: Option<String>,
source_dir: Option<String>,
) -> Pin<Box<dyn Future<Output = Result<String, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn hub_info<'life0, 'async_trait>(
&'life0 self,
pkg: String,
) -> Pin<Box<dyn Future<Output = Result<String, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn hub_info<'life0, 'async_trait>(
&'life0 self,
pkg: String,
) -> Pin<Box<dyn Future<Output = Result<String, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn hub_search<'life0, 'async_trait>(
&'life0 self,
query: Option<String>,
category: Option<String>,
installed_only: Option<bool>,
limit: Option<usize>,
) -> Pin<Box<dyn Future<Output = Result<String, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn hub_search<'life0, 'async_trait>(
&'life0 self,
query: Option<String>,
category: Option<String>,
installed_only: Option<bool>,
limit: Option<usize>,
) -> Pin<Box<dyn Future<Output = Result<String, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Auto Trait Implementations§
impl Freeze for AppService
impl !RefUnwindSafe for AppService
impl Send for AppService
impl Sync for AppService
impl Unpin for AppService
impl UnsafeUnpin for AppService
impl !UnwindSafe for AppService
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§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 moreSource§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.