Skip to main content

strixonomy_core/
lib.rs

1//! Core types, workspace scanning, path sandboxing, and resource limits for Strixonomy.
2//!
3//! Published as [`strixonomy-core`](https://crates.io/crates/strixonomy-core).
4//!
5//! # API stability
6//!
7//! **Pre-1.0:** public types and constants may change between minor releases until
8//! [v1.0 stable core](https://github.com/eddiethedean/strixonomy/blob/main/docs/design/v1.0_BACKLOG.md)
9//! is complete. See [workspace limits](https://github.com/eddiethedean/strixonomy/blob/main/docs/workspace-limits.md).
10
11pub mod document_lookup;
12pub mod error;
13pub mod io;
14pub mod limits;
15pub mod model;
16pub mod path_jail;
17pub mod paths;
18pub mod quick_fix;
19pub mod rdf_literals;
20pub mod scanner;
21
22pub use document_lookup::{
23    document_for_entity, document_for_ontology_id, document_matches_entity,
24    document_matches_ontology_id, file_uri_for_path, normalize_iri,
25};
26pub use error::{Result, StrixonomyError};
27
28/// Deprecated alias for [`StrixonomyError`] (OntoCore name).
29#[deprecated(since = "0.27.0", note = "renamed to StrixonomyError")]
30pub type OntoCoreError = StrixonomyError;
31pub use io::{atomic_write, read_file_capped, read_to_string_capped, replace_file};
32pub use limits::{
33    MAX_ENTITIES, MAX_FILE_BYTES, MAX_OPEN_DOCUMENTS, MAX_QUERY_BYTES, MAX_SCAN_FILES,
34    MAX_SCAN_WALK_ENTRIES, MAX_SPARQL_RESULT_ROWS, MAX_SQL_RESULT_ROWS, MAX_TOTAL_TRIPLES,
35    MAX_TRIPLES_PER_FILE,
36};
37pub use model::{
38    Annotation, Axiom, AxiomAnnotation, Diagnostic, DiagnosticCode, DiagnosticSeverity, Entity,
39    EntityKind, Import, Namespace, OntologyDocument, OntologyFormat, ParseStatus,
40    PropertyCharacteristics, SourceLocation, AXIOM_KIND_CLASS_ASSERTION,
41    AXIOM_KIND_DATATYPE_DEFINITION, AXIOM_KIND_DATA_PROPERTY_ASSERTION,
42    AXIOM_KIND_DIFFERENT_INDIVIDUALS, AXIOM_KIND_DISJOINT_CLASS,
43    AXIOM_KIND_DISJOINT_DATA_PROPERTIES, AXIOM_KIND_DISJOINT_OBJECT_PROPERTIES,
44    AXIOM_KIND_DISJOINT_UNION, AXIOM_KIND_DOMAIN, AXIOM_KIND_EQUIVALENT_CLASS,
45    AXIOM_KIND_EQUIVALENT_DATA_PROPERTIES, AXIOM_KIND_EQUIVALENT_OBJECT_PROPERTIES,
46    AXIOM_KIND_HAS_KEY, AXIOM_KIND_INVERSE_OBJECT_PROPERTIES,
47    AXIOM_KIND_NEGATIVE_DATA_PROPERTY_ASSERTION, AXIOM_KIND_NEGATIVE_OBJECT_PROPERTY_ASSERTION,
48    AXIOM_KIND_OBJECT_PROPERTY_ASSERTION, AXIOM_KIND_PROPERTY_CHAIN, AXIOM_KIND_RANGE,
49    AXIOM_KIND_SAME_INDIVIDUAL, AXIOM_KIND_SUB_CLASS_OF, AXIOM_KIND_SUB_DATA_PROPERTY_OF,
50    AXIOM_KIND_SUB_OBJECT_PROPERTY_OF,
51};
52pub use path_jail::{
53    canonical_workspace_root, discover_git_repo_root, ensure_extract_path_within, file_uri_to_path,
54    is_path_within, is_path_within_any, paths_refer_to_same, resolve_document_path,
55    resolve_lsp_document_path, resolve_lsp_document_path_any, validate_workspace_scope,
56    validate_workspace_scope_any, workspace_uri_to_path,
57};
58pub use paths::{
59    cache_dir, diagnostics_config_path, plugin_search_dirs, plugins_dir, resolve_config_path,
60    resolve_dotted_config_path, CACHE_SUBDIR, CONFIG_DIR, DIAGNOSTICS_FILE, LEGACY_CONFIG_DIR,
61    LEGACY_PLUGIN_DISABLED_REL, LEGACY_PLUGIN_OUT_REL, PLUGINS_SUBDIR, PLUGIN_DISABLED_REL,
62    PLUGIN_OUT_REL,
63};
64pub use quick_fix::QuickFix;
65pub use rdf_literals::parse_boolean_literal;
66pub use scanner::{OntologyFile, WorkspaceScanner};