Expand description
Known Values: A compact, deterministic representation for ontological concepts.
This crate implements the Blockchain Commons Known Values specification, providing a compact way to represent ontological concepts using 64-bit unsigned integers with optional human-readable names.
§Basic Usage
use known_values::{IS_A, KnownValue, KnownValuesStore, NOTE};
// Use predefined constants
assert_eq!(IS_A.value(), 1);
assert_eq!(IS_A.name(), "isA");
// Create custom known values
let custom =
KnownValue::new_with_name(1000u64, "myCustomValue".to_string());
assert_eq!(custom.value(), 1000);
// Use a store for bidirectional lookup
let store = KnownValuesStore::new([IS_A, NOTE]);
assert_eq!(store.known_value_named("isA").unwrap().value(), 1);§Directory Loading Feature
When the directory-loading feature is enabled (default), this crate can
load additional known values from JSON registry files.
§Default Behavior
On first access to KNOWN_VALUES, the crate automatically:
- Initializes hardcoded known values from the registry
- Scans
~/.known-values/for JSON files - Loads entries from any
*.jsonfiles found - Overrides hardcoded values if codepoints collide
§JSON File Format
Registry files should follow the BlockchainCommons format:
{
"entries": [
{"codepoint": 1000, "name": "myValue", "type": "property"}
]
}§Custom Configuration
Configure search paths before first access (requires directory-loading
feature):
ⓘ
use known_values::{set_directory_config, DirectoryConfig};
// Use only custom paths
set_directory_config(DirectoryConfig::with_paths(vec![
"/etc/known-values".into(),
"/usr/share/known-values".into(),
])).unwrap();§Disabling Directory Loading
To disable at compile time:
[dependencies]
known-values = { version = "0.15", default-features = false }Macros§
- const_
known_ value - A macro that declares a known value at compile time.
Structs§
- Directory
Config - Configuration for loading known values from directories.
- Known
Value - A value in a namespace of unsigned integers that represents a stand-alone ontological concept.
- Known
Values Store - A store that maps between Known Values and their assigned names.
- Load
Result - Result of a directory loading operation.
- Registry
Entry - A single entry in a known values JSON registry file.
- Registry
File - Root structure of a known values JSON registry file.
Enums§
- Config
Error - Error returned when configuration cannot be modified.
- Load
Error - Errors that can occur when loading known values from directories.
Constants§
- ACYCLIC_
GRAPH - ACYCLIC_
GRAPH_ RAW - ALLOW
- ALLOW_
RAW - ASSET
- ASSET_
RAW - ATTACHMENT
- ATTACHMENT_
RAW - BIP32_
KEY_ TYPE - BIP32_
KEY_ TYPE_ RAW - BITCOIN_
VALUE - BITCOIN_
VALUE_ RAW - BODY
- BODY_
RAW - CAPABILITY
- CAPABILITY_
RAW - CHAIN_
CODE - CHAIN_
CODE_ RAW - CHILD
- CHILDREN_
PATH - CHILDREN_
PATH_ RAW - CHILD_
RAW - COMPOUND_
GRAPH - COMPOUND_
GRAPH_ RAW - CONFORMS_
TO - CONFORMS_
TO_ RAW - CONTENT
- CONTENT_
RAW - CONTROLLER
- CONTROLLER_
RAW - DAG
- DAG_RAW
- DATE
- DATE_
RAW - DELEGATE
- DELEGATE_
RAW - DENY
- DENY_
RAW - DEREFERENCE_
VIA - DEREFERENCE_
VIA_ RAW - DERIVATION_
PATH_ TYPE - DERIVATION_
PATH_ TYPE_ RAW - DIFF_
EDITS - DIFF_
EDITS_ RAW - DIGRAPH
- DIGRAPH_
RAW - DIHYPERGRAPH
- DIHYPERGRAPH_
RAW - EDGE
- EDGE_
RAW - ENDPOINT
- ENDPOINT_
RAW - ENTITY
- ENTITY_
RAW - ERROR
- ERROR_
RAW - ETHEREUM_
VALUE - ETHEREUM_
VALUE_ RAW - FOREST
- FOREST_
RAW - GRAPH
- GRAPH_
FRAGMENT - GRAPH_
FRAGMENT_ RAW - GRAPH_
RAW - HAS_
RECIPIENT - HAS_
RECIPIENT_ RAW - HAS_
SECRET - HAS_
SECRET_ RAW - HOLDER
- HOLDER_
RAW - HYPERGRAPH
- HYPERGRAPH_
RAW - ID
- ID_RAW
- ISSUER
- ISSUER_
RAW - IS_A
- IS_
A_ RAW - KEY
- KEY_RAW
- LANGUAGE
- LANGUAGE_
RAW - MAIN_
NET_ VALUE - MAIN_
NET_ VALUE_ RAW - MASTER_
KEY_ TYPE - MASTER_
KEY_ TYPE_ RAW - MULTIGRAPH
- MULTIGRAPH_
RAW - NAME
- NAME_
RAW - NETWORK
- NETWORK_
RAW - NICKNAME
- NICKNAME_
RAW - NODE
- NODE_
RAW - NOTE
- NOTE_
RAW - OK_
VALUE - OK_
VALUE_ RAW - OUTPUT_
DESCRIPTOR - OUTPUT_
DESCRIPTOR_ RAW - OUTPUT_
DESCRIPTOR_ TYPE - OUTPUT_
DESCRIPTOR_ TYPE_ RAW - PARENT
- PARENT_
CHILD_ GRAPH - PARENT_
CHILD_ GRAPH_ RAW - PARENT_
FINGERPRINT - PARENT_
FINGERPRINT_ RAW - PARENT_
PATH - PARENT_
PATH_ RAW - PARENT_
RAW - POSITION
- POSITION_
RAW - PRIVATE_
KEY - PRIVATE_
KEY_ RAW - PRIVATE_
KEY_ TYPE - PRIVATE_
KEY_ TYPE_ RAW - PRIVILEGE_
ACCESS - PRIVILEGE_
ACCESS_ RAW - PRIVILEGE_
ALL - PRIVILEGE_
ALL_ RAW - PRIVILEGE_
AUTH - PRIVILEGE_
AUTH_ RAW - PRIVILEGE_
BURN - PRIVILEGE_
BURN_ RAW - PRIVILEGE_
DELEGATE - PRIVILEGE_
DELEGATE_ RAW - PRIVILEGE_
ELECT - PRIVILEGE_
ELECT_ RAW - PRIVILEGE_
ELIDE - PRIVILEGE_
ELIDE_ RAW - PRIVILEGE_
ENCRYPT - PRIVILEGE_
ENCRYPT_ RAW - PRIVILEGE_
ISSUE - PRIVILEGE_
ISSUE_ RAW - PRIVILEGE_
REVOKE - PRIVILEGE_
REVOKE_ RAW - PRIVILEGE_
SIGN - PRIVILEGE_
SIGN_ RAW - PRIVILEGE_
TRANSFER - PRIVILEGE_
TRANSFER_ RAW - PRIVILEGE_
UPDATE - PRIVILEGE_
UPDATE_ RAW - PRIVILEGE_
VERIFY - PRIVILEGE_
VERIFY_ RAW - PROCESSING_
VALUE - PROCESSING_
VALUE_ RAW - PROVENANCE
- PROVENANCE_
GENERATOR - PROVENANCE_
GENERATOR_ RAW - PROVENANCE_
RAW - PSBT_
TYPE - PSBT_
TYPE_ RAW - PSEUDOGRAPH
- PSEUDOGRAPH_
RAW - PUBLIC_
KEY_ TYPE - PUBLIC_
KEY_ TYPE_ RAW - RECIPIENT_
CONTINUATION - RECIPIENT_
CONTINUATION_ RAW - RESULT
- RESULT_
RAW - SALT
- SALT_
RAW - SEED_
TYPE - SEED_
TYPE_ RAW - SENDER
- SENDER_
CONTINUATION - SENDER_
CONTINUATION_ RAW - SENDER_
RAW - SERVICE
- SERVICE_
RAW - SIGNED
- SIGNED_
RAW - SOURCE
- SOURCE_
RAW - SOURCE_
TARGET_ GRAPH - SOURCE_
TARGET_ GRAPH_ RAW - SSKR_
SHARE - SSKR_
SHARE_ RAW - TARGET
- TARGET_
RAW - TEST_
NET_ VALUE - TEST_
NET_ VALUE_ RAW - TEZOS_
VALUE - TEZOS_
VALUE_ RAW - TREE
- TREE_
RAW - UNIT
- UNIT_
RAW - UNKNOWN_
VALUE - UNKNOWN_
VALUE_ RAW - VALID_
FROM - VALID_
FROM_ RAW - VALID_
UNTIL - VALID_
UNTIL_ RAW - VENDOR
- VENDOR_
RAW - VERSION_
VALUE - VERSION_
VALUE_ RAW
Statics§
- KNOWN_
VALUES - The global registry of Known Values.
Functions§
- add_
search_ paths - Adds additional search paths to the directory configuration.
- load_
from_ config - Loads known values from all directories in the given configuration.
- load_
from_ directory - Loads all JSON registry files from a single directory.
- set_
directory_ config - Sets custom directory configuration for known values loading.