Skip to main content

Crate apcore_toolkit

Crate apcore_toolkit 

Source
Expand description

apcore-toolkit — Shared scanner, schema extraction, and output toolkit.

Rust implementation — tri-language parity with Python and TypeScript.

The crate version is exported as VERSION to match the __version__ / VERSION symbols in the Python and TypeScript SDKs.

§Language-writer parity

Python ships PythonWriter, TypeScript ships TypeScriptWriter, and the Rust SDK ships RustWriter for generating language-native handler stubs. The generated files are starting-point stubs; Rust consumers may also work directly with the strongly-typed ScannedModule / registry APIs.

§Crate-root re-exports

The HTTP verb helpers and SCANNER_VERB_MAP are exported directly at the crate root. As of v0.5.0 they are no longer re-exported through the scanner module path — import from the crate root or http_verb_map:

use apcore_toolkit::{generate_suggested_alias, has_path_params, resolve_http_verb, SCANNER_VERB_MAP};

assert_eq!(resolve_http_verb("POST", false), "create");
assert!(has_path_params("/tasks/{id}"));
assert_eq!(SCANNER_VERB_MAP.get("POST").copied(), Some("create"));
assert_eq!(
    generate_suggested_alias("/tasks/user_data", "POST"),
    "tasks.user_data.create"
);

Re-exports§

pub use ai_enhancer::AIEnhancer;
pub use ai_enhancer::AIEnhancerError;
pub use ai_enhancer::Enhancer;
pub use binding_loader::BindingLoadError;
pub use binding_loader::BindingLoader;
pub use display::DisplayResolver;
pub use display::DisplayResolverError;
pub use formatting::format_csv;
pub use formatting::format_jsonl;
pub use formatting::format_module;
pub use formatting::format_modules;
pub use formatting::format_schema;
pub use formatting::to_markdown;
pub use formatting::FormatError;
pub use formatting::FormatOutput;
pub use formatting::GroupBy;
pub use formatting::MarkdownError;
pub use formatting::MarkdownOptions;
pub use formatting::ModuleStyle;
pub use formatting::SchemaStyle;
pub use http_verb_map::extract_path_param_names;
pub use http_verb_map::generate_suggested_alias;
pub use http_verb_map::has_path_params;
pub use http_verb_map::resolve_http_verb;
pub use http_verb_map::substitute_path_params;
pub use http_verb_map::SCANNER_VERB_MAP;
pub use openapi::deep_resolve_refs;
pub use openapi::extract_input_schema;
pub use openapi::extract_output_schema;
pub use openapi::resolve_ref;
pub use openapi::resolve_schema;
pub use output::errors::WriteError;
pub use output::registry_writer::HandlerFactory;
pub use output::registry_writer::HandlerFn;
pub use output::registry_writer::RegistryWriter;
pub use output::rust_writer::RustWriter;
pub use output::types::Verifier;
pub use output::types::VerifyResult;
pub use output::types::WriteResult;
pub use output::verifiers::run_verifier_chain;
pub use output::verifiers::JSONVerifier;
pub use output::verifiers::MagicBytesVerifier;
pub use output::verifiers::RegistryVerifier;
pub use output::verifiers::SyntaxVerifier;
pub use output::verifiers::YAMLVerifier;
pub use output::yaml_writer::YAMLWriter;
pub use output::get_writer;
pub use output::InvalidFormatError;
pub use output::OutputFormat;
pub use resolve_target::resolve_target;
pub use resolve_target::ResolveTargetError;
pub use resolve_target::ResolvedTarget;
pub use scanner::deduplicate_ids;
pub use scanner::filter_modules;
pub use scanner::infer_annotations_from_method;
pub use scanner::BaseScanner;
pub use schema_utils::enrich_schema_descriptions;
pub use serializers::annotations_to_dict;
pub use serializers::module_to_dict;
pub use serializers::modules_to_dicts;
pub use types::clone_module;
pub use types::create_scanned_module;
pub use types::ScannedModule;
pub use output::http_proxy_writer::HTTPProxyRegistryWriter;
pub use output::http_proxy_writer::HTTPProxyRegistryWriterError;

Modules§

ai_enhancer
binding_loader
display
formatting
http_verb_map
openapi
output
resolve_target
scanner
schema_utils
serializers
types

Constants§

VERSION
Crate version, read from Cargo.toml at compile time.