Crate known_values

Crate known_values 

Source
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:

  1. Initializes hardcoded known values from the registry
  2. Scans ~/.known-values/ for JSON files
  3. Loads entries from any *.json files found
  4. 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§

DirectoryConfig
Configuration for loading known values from directories.
KnownValue
A value in a namespace of unsigned integers that represents a stand-alone ontological concept.
KnownValuesStore
A store that maps between Known Values and their assigned names.
LoadResult
Result of a directory loading operation.
RegistryEntry
A single entry in a known values JSON registry file.
RegistryFile
Root structure of a known values JSON registry file.

Enums§

ConfigError
Error returned when configuration cannot be modified.
LoadError
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.