Skip to main content

ontocore_core/
lib.rs

1//! Core types, workspace scanning, path sandboxing, and resource limits for OntoCore.
2//!
3//! Published as [`ontocore-core`](https://crates.io/crates/ontocore-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/ontocode/blob/main/docs/design/v1.0_BACKLOG.md)
9//! is complete. See [workspace limits](https://github.com/eddiethedean/ontocode/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 quick_fix;
18pub mod rdf_literals;
19pub mod scanner;
20
21pub use document_lookup::{
22    document_for_entity, document_for_ontology_id, document_matches_entity,
23    document_matches_ontology_id, file_uri_for_path, normalize_iri,
24};
25pub use error::{OntoCoreError, Result};
26pub use io::{read_file_capped, read_to_string_capped};
27pub use limits::{
28    MAX_ENTITIES, MAX_FILE_BYTES, MAX_OPEN_DOCUMENTS, MAX_QUERY_BYTES, MAX_SCAN_FILES,
29    MAX_SCAN_WALK_ENTRIES, MAX_SPARQL_RESULT_ROWS, MAX_SQL_RESULT_ROWS, MAX_TOTAL_TRIPLES,
30    MAX_TRIPLES_PER_FILE,
31};
32pub use model::{
33    Annotation, Axiom, AxiomAnnotation, Diagnostic, DiagnosticCode, DiagnosticSeverity, Entity,
34    EntityKind, Import, Namespace, OntologyDocument, OntologyFormat, ParseStatus,
35    PropertyCharacteristics, SourceLocation, AXIOM_KIND_CLASS_ASSERTION,
36    AXIOM_KIND_DATATYPE_DEFINITION, AXIOM_KIND_DATA_PROPERTY_ASSERTION,
37    AXIOM_KIND_DIFFERENT_INDIVIDUALS, AXIOM_KIND_DISJOINT_CLASS,
38    AXIOM_KIND_DISJOINT_DATA_PROPERTIES, AXIOM_KIND_DISJOINT_OBJECT_PROPERTIES,
39    AXIOM_KIND_DISJOINT_UNION, AXIOM_KIND_DOMAIN, AXIOM_KIND_EQUIVALENT_CLASS,
40    AXIOM_KIND_EQUIVALENT_DATA_PROPERTIES, AXIOM_KIND_EQUIVALENT_OBJECT_PROPERTIES,
41    AXIOM_KIND_HAS_KEY, AXIOM_KIND_INVERSE_OBJECT_PROPERTIES,
42    AXIOM_KIND_NEGATIVE_DATA_PROPERTY_ASSERTION, AXIOM_KIND_NEGATIVE_OBJECT_PROPERTY_ASSERTION,
43    AXIOM_KIND_OBJECT_PROPERTY_ASSERTION, AXIOM_KIND_PROPERTY_CHAIN, AXIOM_KIND_RANGE,
44    AXIOM_KIND_SAME_INDIVIDUAL, AXIOM_KIND_SUB_CLASS_OF, AXIOM_KIND_SUB_DATA_PROPERTY_OF,
45    AXIOM_KIND_SUB_OBJECT_PROPERTY_OF,
46};
47pub use path_jail::{
48    canonical_workspace_root, discover_git_repo_root, ensure_extract_path_within, file_uri_to_path,
49    is_path_within, is_path_within_any, paths_refer_to_same, resolve_document_path,
50    resolve_lsp_document_path, resolve_lsp_document_path_any, validate_workspace_scope,
51    validate_workspace_scope_any, workspace_uri_to_path,
52};
53pub use quick_fix::QuickFix;
54pub use rdf_literals::parse_boolean_literal;
55pub use scanner::{OntologyFile, WorkspaceScanner};