Arachne 1.0
Arachne - the perpetual stitcher of Wikidata entities.
Loading...
Searching...
No Matches
inbox.cpp File Reference
#include "penelope/inbox.hpp"
#include "arachne/contracts.hpp"
#include <nlohmann/json.hpp>
#include <rapidfuzz/fuzz.hpp>
#include <sqlite3.h>
#include <utf8proc.h>
#include <fcntl.h>
#include <sys/stat.h>
#include <unistd.h>
#include <algorithm>
#include <array>
#include <cerrno>
#include <charconv>
#include <cmath>
#include <cstdint>
#include <cstring>
#include <cstdlib>
#include <filesystem>
#include <fstream>
#include <limits>
#include <map>
#include <optional>
#include <set>
#include <sstream>
#include <string>
#include <string_view>
#include <tuple>
#include <unordered_map>
#include <unordered_set>
#include <utility>
#include <vector>
Include dependency graph for inbox.cpp:

Go to the source code of this file.

Classes

class  arachne::penelope::anonymous_namespace{inbox.cpp}::database_error
class  arachne::penelope::anonymous_namespace{inbox.cpp}::statement
class  arachne::penelope::anonymous_namespace{inbox.cpp}::database
class  arachne::penelope::anonymous_namespace{inbox.cpp}::transaction
struct  arachne::penelope::anonymous_namespace{inbox.cpp}::file_identity
struct  arachne::penelope::anonymous_namespace{inbox.cpp}::file_snapshot
class  arachne::penelope::anonymous_namespace{inbox.cpp}::file_descriptor
struct  arachne::penelope::anonymous_namespace{inbox.cpp}::parsed_batch
struct  arachne::penelope::anonymous_namespace{inbox.cpp}::local_id_allocation_state
struct  arachne::penelope::anonymous_namespace{inbox.cpp}::concept_relation_row
struct  arachne::penelope::anonymous_namespace{inbox.cpp}::hint_label
struct  arachne::penelope::anonymous_namespace{inbox.cpp}::hint_candidate_support
struct  arachne::penelope::anonymous_namespace{inbox.cpp}::hint_components

Namespaces

namespace  arachne
namespace  arachne::penelope
namespace  arachne::penelope::anonymous_namespace{inbox.cpp}

Typedefs

using arachne::penelope::anonymous_namespace{inbox.cpp}::json = nlohmann::json
using arachne::penelope::anonymous_namespace{inbox.cpp}::record_validator
using arachne::penelope::anonymous_namespace{inbox.cpp}::hint_pair = std::pair<std::string, std::string>
using arachne::penelope::anonymous_namespace{inbox.cpp}::hint_candidate_map

Enumerations

enum class  arachne::penelope::anonymous_namespace{inbox.cpp}::value_kind {
  arachne::penelope::anonymous_namespace{inbox.cpp}::string , arachne::penelope::anonymous_namespace{inbox.cpp}::integer , arachne::penelope::anonymous_namespace{inbox.cpp}::number , arachne::penelope::anonymous_namespace{inbox.cpp}::boolean ,
  arachne::penelope::anonymous_namespace{inbox.cpp}::object , arachne::penelope::anonymous_namespace{inbox.cpp}::array , arachne::penelope::anonymous_namespace{inbox.cpp}::string , arachne::penelope::anonymous_namespace{inbox.cpp}::integer ,
  arachne::penelope::anonymous_namespace{inbox.cpp}::number , arachne::penelope::anonymous_namespace{inbox.cpp}::boolean , arachne::penelope::anonymous_namespace{inbox.cpp}::object , arachne::penelope::anonymous_namespace{inbox.cpp}::array
}
enum class  arachne::penelope::anonymous_namespace{inbox.cpp}::value_kind {
  arachne::penelope::anonymous_namespace{inbox.cpp}::string , arachne::penelope::anonymous_namespace{inbox.cpp}::integer , arachne::penelope::anonymous_namespace{inbox.cpp}::number , arachne::penelope::anonymous_namespace{inbox.cpp}::boolean ,
  arachne::penelope::anonymous_namespace{inbox.cpp}::object , arachne::penelope::anonymous_namespace{inbox.cpp}::array , arachne::penelope::anonymous_namespace{inbox.cpp}::string , arachne::penelope::anonymous_namespace{inbox.cpp}::integer ,
  arachne::penelope::anonymous_namespace{inbox.cpp}::number , arachne::penelope::anonymous_namespace{inbox.cpp}::boolean , arachne::penelope::anonymous_namespace{inbox.cpp}::object , arachne::penelope::anonymous_namespace{inbox.cpp}::array
}

Functions

std::string arachne::penelope::anonymous_namespace{inbox.cpp}::sqlite_message (sqlite3 *const value, const std::string_view operation)
void arachne::penelope::anonymous_namespace{inbox.cpp}::require_current_product_structure (sqlite3 *const sql)
bool arachne::penelope::anonymous_namespace{inbox.cpp}::same_identity (const file_identity &left, const file_identity &right)
file_identity arachne::penelope::anonymous_namespace{inbox.cpp}::identity_of (const struct stat &state)
file_snapshot arachne::penelope::anonymous_namespace{inbox.cpp}::read_batch_file (const fs::path &path)
bool arachne::penelope::anonymous_namespace{inbox.cpp}::snapshot_still_current (const file_snapshot &snapshot)
std::string arachne::penelope::anonymous_namespace{inbox.cpp}::pointer_escape (const std::string_view value)
void arachne::penelope::anonymous_namespace{inbox.cpp}::add_issue (parsed_batch &batch, const std::string_view code, const std::string_view path, const std::string_view message, const json *const value=nullptr)
bool arachne::penelope::anonymous_namespace{inbox.cpp}::valid_batch_id (const std::string_view value)
bool arachne::penelope::anonymous_namespace{inbox.cpp}::valid_local_id (const std::string_view value)
bool arachne::penelope::anonymous_namespace{inbox.cpp}::valid_canonical_id (const std::string_view value, const std::string_view family)
bool arachne::penelope::anonymous_namespace{inbox.cpp}::looks_like_canonical_entity_id (const std::string_view value)
bool arachne::penelope::anonymous_namespace{inbox.cpp}::valid_slug (const std::string_view value)
void arachne::penelope::anonymous_namespace{inbox.cpp}::check_keys (parsed_batch &batch, const json &object, const std::string &path, const std::set< std::string, std::less<> > &allowed, const std::set< std::string, std::less<> > &required={})
bool arachne::penelope::anonymous_namespace{inbox.cpp}::is_kind (const json &value, const value_kind kind)
void arachne::penelope::anonymous_namespace{inbox.cpp}::require_kind (parsed_batch &batch, const json &object, const std::string &key, const std::string &path, const value_kind kind)
void arachne::penelope::anonymous_namespace{inbox.cpp}::require_nonempty_string (parsed_batch &batch, const json &object, const std::string &key, const std::string &path)
void arachne::penelope::anonymous_namespace{inbox.cpp}::require_enum (parsed_batch &batch, const json &object, const std::string &key, const std::string &path, const std::set< std::string, std::less<> > &allowed)
void arachne::penelope::anonymous_namespace{inbox.cpp}::require_integer_range (parsed_batch &batch, const json &object, const std::string &key, const std::string &path, const std::int64_t minimum, const std::int64_t maximum)
void arachne::penelope::anonymous_namespace{inbox.cpp}::require_number_range (parsed_batch &batch, const json &object, const std::string &key, const std::string &path, const double minimum, const double maximum)
std::string arachne::penelope::anonymous_namespace{inbox.cpp}::indexed_path (const std::string_view parent, const std::size_t index)
void arachne::penelope::anonymous_namespace{inbox.cpp}::set_application_context (parsed_batch &batch, const std::string_view path, const json &value)
void arachne::penelope::anonymous_namespace{inbox.cpp}::validate_local_id (parsed_batch &batch, const json &record, const std::string &path, std::unordered_map< std::string, std::string > &locals, const std::string_view family)
void arachne::penelope::anonymous_namespace{inbox.cpp}::validate_entity_reference_shape (parsed_batch &batch, const json &record, const std::string &key, const std::string &path)
void arachne::penelope::anonymous_namespace{inbox.cpp}::validate_integer_or_local_reference_shape (parsed_batch &batch, const json &record, const std::string &key, const std::string &path)
void arachne::penelope::anonymous_namespace{inbox.cpp}::validate_create_agent (parsed_batch &batch, const json &value, const std::string &path, std::unordered_map< std::string, std::string > &locals)
void arachne::penelope::anonymous_namespace{inbox.cpp}::validate_create_work (parsed_batch &batch, const json &value, const std::string &path, std::unordered_map< std::string, std::string > &locals)
void arachne::penelope::anonymous_namespace{inbox.cpp}::validate_create_concept (parsed_batch &batch, const json &value, const std::string &path, std::unordered_map< std::string, std::string > &locals)
void arachne::penelope::anonymous_namespace{inbox.cpp}::validate_create_manifestation (parsed_batch &batch, const json &value, const std::string &path, std::unordered_map< std::string, std::string > &locals)
void arachne::penelope::anonymous_namespace{inbox.cpp}::validate_create_name (parsed_batch &batch, const json &value, const std::string &path)
void arachne::penelope::anonymous_namespace{inbox.cpp}::validate_create_external_id (parsed_batch &batch, const json &value, const std::string &path)
void arachne::penelope::anonymous_namespace{inbox.cpp}::validate_create_source (parsed_batch &batch, const json &value, const std::string &path, std::unordered_map< std::string, std::string > &locals)
void arachne::penelope::anonymous_namespace{inbox.cpp}::validate_create_evidence (parsed_batch &batch, const json &value, const std::string &path, std::unordered_map< std::string, std::string > &locals)
void arachne::penelope::anonymous_namespace{inbox.cpp}::validate_create_credit (parsed_batch &batch, const json &value, const std::string &path)
void arachne::penelope::anonymous_namespace{inbox.cpp}::validate_create_measurement (parsed_batch &batch, const json &value, const std::string &path)
void arachne::penelope::anonymous_namespace{inbox.cpp}::validate_create_financial (parsed_batch &batch, const json &value, const std::string &path)
void arachne::penelope::anonymous_namespace{inbox.cpp}::validate_evidence_list (parsed_batch &batch, const json &value, const std::string &path)
void arachne::penelope::anonymous_namespace{inbox.cpp}::validate_create_work_concept (parsed_batch &batch, const json &value, const std::string &path, std::unordered_map< std::string, std::string > &locals)
void arachne::penelope::anonymous_namespace{inbox.cpp}::validate_create_concept_relation (parsed_batch &batch, const json &value, const std::string &path, std::unordered_map< std::string, std::string > &locals)
void arachne::penelope::anonymous_namespace{inbox.cpp}::validate_create_parent_guide (parsed_batch &batch, const json &value, const std::string &path, std::unordered_map< std::string, std::string > &locals)
template<typename Validator>
void arachne::penelope::anonymous_namespace{inbox.cpp}::validate_array (parsed_batch &batch, const json &parent, const std::string &key, const std::string &parent_path, Validator &&validator)
void arachne::penelope::anonymous_namespace{inbox.cpp}::validate_update_record (parsed_batch &batch, const json &value, const std::string &path, const std::string_view family, const std::map< std::string, value_kind, std::less<> > &mutable_fields, const std::set< std::string, std::less<> > &required_fields, const std::map< std::string, std::set< std::string, std::less<> >, std::less<> > &enum_fields, const bool allow_empty=false, const bool integer_id=false)
void arachne::penelope::anonymous_namespace{inbox.cpp}::validate_delete_object (parsed_batch &batch, const json &update, const std::string &path)
void arachne::penelope::anonymous_namespace{inbox.cpp}::validate_merge_record (parsed_batch &batch, const json &value, const std::string &path, const std::string_view family, const std::map< std::string, value_kind, std::less<> > &mutable_fields, const std::set< std::string, std::less<> > &required_fields, const std::map< std::string, std::set< std::string, std::less<> >, std::less<> > &enum_fields, std::map< std::string, std::string, std::less<> > &merged_entities)
void arachne::penelope::anonymous_namespace{inbox.cpp}::validate_document_shape (parsed_batch &batch)
json arachne::penelope::anonymous_namespace{inbox.cpp}::parse_strict_json (const std::string &bytes)
bool arachne::penelope::anonymous_namespace{inbox.cpp}::row_exists (sqlite3 *const database_value, const std::string_view table, const std::string_view column, const json &id)
std::string arachne::penelope::anonymous_namespace{inbox.cpp}::entity_family (sqlite3 *const database_value, const std::string &id)
std::string arachne::penelope::anonymous_namespace{inbox.cpp}::ref_string (const json &record, const char *key)
void arachne::penelope::anonymous_namespace{inbox.cpp}::prevalidate_entity_reference (parsed_batch &batch, sqlite3 *const database_value, const json &record, const std::string &key, const std::string &path, const std::string_view expected_family={})
void arachne::penelope::anonymous_namespace{inbox.cpp}::prevalidate_integer_or_local_reference (parsed_batch &batch, sqlite3 *const database_value, const json &record, const std::string &key, const std::string &path, const std::string_view local_family, const std::string_view table)
void arachne::penelope::anonymous_namespace{inbox.cpp}::prevalidate_semantics (parsed_batch &batch, database &product)
std::int64_t arachne::penelope::anonymous_namespace{inbox.cpp}::maximum_row_id (sqlite3 *const sql, const std::string_view table)
std::int64_t arachne::penelope::anonymous_namespace{inbox.cpp}::maximum_entity_suffix (sqlite3 *const sql, const std::string_view prefix)
std::string arachne::penelope::anonymous_namespace{inbox.cpp}::formatted_entity_id (const std::string_view family, const std::int64_t sequence)
local_id_allocation_state arachne::penelope::anonymous_namespace{inbox.cpp}::initial_allocation_state (database &product)
std::int64_t arachne::penelope::anonymous_namespace{inbox.cpp}::next_sequence (std::int64_t &sequence, const std::string_view description)
void arachne::penelope::anonymous_namespace{inbox.cpp}::allocate_local_references (parsed_batch &batch, local_id_allocation_state &sequences)
std::string arachne::penelope::anonymous_namespace{inbox.cpp}::resolve_entity (const parsed_batch &batch, const json &value)
std::int64_t arachne::penelope::anonymous_namespace{inbox.cpp}::resolve_row_reference (const std::unordered_map< std::string, std::int64_t > &locals, const json &value)
void arachne::penelope::anonymous_namespace{inbox.cpp}::bind_optional (statement &insert, const int index, const json &row, const char *key, const bool serialize=false)
void arachne::penelope::anonymous_namespace{inbox.cpp}::create_entities (parsed_batch &batch, sqlite3 *const sql)
void arachne::penelope::anonymous_namespace{inbox.cpp}::create_names_and_identifiers (parsed_batch &batch, sqlite3 *const sql)
void arachne::penelope::anonymous_namespace{inbox.cpp}::create_sources_and_evidence (parsed_batch &batch, sqlite3 *const sql)
void arachne::penelope::anonymous_namespace{inbox.cpp}::create_facts (parsed_batch &batch, sqlite3 *const sql)
void arachne::penelope::anonymous_namespace{inbox.cpp}::attach_evidence (const parsed_batch &batch, sqlite3 *const sql, const std::string_view table, const std::int64_t assertion_id, const json &evidence)
void arachne::penelope::anonymous_namespace{inbox.cpp}::create_assertions (parsed_batch &batch, sqlite3 *const sql)
std::string arachne::penelope::anonymous_namespace{inbox.cpp}::sql_column (const std::string_view field)
void arachne::penelope::anonymous_namespace{inbox.cpp}::update_row (sqlite3 *const sql, const std::string_view table, const std::string_view id_column, const json &operation)
void arachne::penelope::anonymous_namespace{inbox.cpp}::apply_updates (parsed_batch &batch, sqlite3 *const sql)
void arachne::penelope::anonymous_namespace{inbox.cpp}::apply_deletes (parsed_batch &batch, sqlite3 *const sql)
std::set< std::string, std::less<> > arachne::penelope::anonymous_namespace{inbox.cpp}::string_set (const json &array)
void arachne::penelope::anonymous_namespace{inbox.cpp}::resolve_scalar_fields (sqlite3 *const sql, const std::string_view table, const std::string_view id_column, const std::string &target, const std::vector< std::string > &members, const json &operation, const std::vector< std::string > &columns, const std::set< std::string, std::less<> > &required)
void arachne::penelope::anonymous_namespace{inbox.cpp}::reject_preferred_name_conflict (sqlite3 *const sql, const std::string &target, const std::vector< std::string > &members)
bool arachne::penelope::anonymous_namespace{inbox.cpp}::query_exists (sqlite3 *const sql, const std::string_view query_text, const std::string &target, const std::string &member)
void arachne::penelope::anonymous_namespace{inbox.cpp}::merge_entity_scoped_rows (sqlite3 *const sql, const std::string &target, const std::string &member)
void arachne::penelope::anonymous_namespace{inbox.cpp}::merge_credits (sqlite3 *const sql, const std::string_view id_column, const std::string &target, const std::string &member)
void arachne::penelope::anonymous_namespace{inbox.cpp}::transfer_assertion_evidence (sqlite3 *const sql, const std::string_view evidence_table, const std::int64_t keeper, const std::int64_t duplicate)
void arachne::penelope::anonymous_namespace{inbox.cpp}::merge_work_concepts (sqlite3 *const sql, const std::string_view id_column, const std::string &target, const std::string &member)
void arachne::penelope::anonymous_namespace{inbox.cpp}::merge_parent_guides (sqlite3 *const sql, const std::string_view id_column, const std::string &target, const std::string &member)
void arachne::penelope::anonymous_namespace{inbox.cpp}::merge_financial_facts (sqlite3 *const sql, const std::string &target, const std::string &member)
void arachne::penelope::anonymous_namespace{inbox.cpp}::merge_concept_relations (sqlite3 *const sql, const std::string &target, const std::string &member)
void arachne::penelope::anonymous_namespace{inbox.cpp}::delete_merged_entity (sqlite3 *const sql, const std::string &member)
std::vector< std::string > arachne::penelope::anonymous_namespace{inbox.cpp}::merge_members (const json &operation)
void arachne::penelope::anonymous_namespace{inbox.cpp}::mark_merge_neighborhood (parsed_batch &batch, sqlite3 *const sql, const std::string_view family, const std::string &target, const std::vector< std::string > &members)
void arachne::penelope::anonymous_namespace{inbox.cpp}::merge_agents (parsed_batch &batch, sqlite3 *const sql, const json &operation)
void arachne::penelope::anonymous_namespace{inbox.cpp}::merge_works (parsed_batch &batch, sqlite3 *const sql, const json &operation)
void arachne::penelope::anonymous_namespace{inbox.cpp}::merge_concepts (parsed_batch &batch, sqlite3 *const sql, const json &operation)
void arachne::penelope::anonymous_namespace{inbox.cpp}::apply_merges (parsed_batch &batch, sqlite3 *const sql)
std::string arachne::penelope::anonymous_namespace{inbox.cpp}::normalized_label (const std::string_view value)
std::vector< hint_labelarachne::penelope::anonymous_namespace{inbox.cpp}::all_hint_labels (sqlite3 *const sql)
std::optional< hint_labelarachne::penelope::anonymous_namespace{inbox.cpp}::hint_label_for_id (sqlite3 *const sql, const std::string &id)
std::set< std::string, std::less<> > arachne::penelope::anonymous_namespace{inbox.cpp}::trigrams (const std::string_view value)
double arachne::penelope::anonymous_namespace{inbox.cpp}::trigram_score (const std::string_view left, const std::string_view right)
bool arachne::penelope::anonymous_namespace{inbox.cpp}::is_trigram_block (const std::string_view block_type)
std::size_t arachne::penelope::anonymous_namespace{inbox.cpp}::maximum_hint_block_size (const std::string_view block_type)
std::string arachne::penelope::anonymous_namespace{inbox.cpp}::contextual_block_key (const std::string_view context, const std::string_view value)
std::string arachne::penelope::anonymous_namespace{inbox.cpp}::trigram_support_key (const std::string_view block_key)
void arachne::penelope::anonymous_namespace{inbox.cpp}::record_hint_candidate (hint_candidate_map &candidates, const std::string &first, const std::string &second, const std::string_view block_type, const std::string_view block_key)
std::set< hint_pairarachne::penelope::anonymous_namespace{inbox.cpp}::reviewable_blocked_pairs (const hint_candidate_map &candidates)
void arachne::penelope::anonymous_namespace{inbox.cpp}::insert_hint_block (statement &block, statement &member, const hint_label &label, const std::string_view block_type, const std::string &block_key)
void arachne::penelope::anonymous_namespace{inbox.cpp}::insert_hint_blocks (sqlite3 *const sql, const hint_label &label)
void arachne::penelope::anonymous_namespace{inbox.cpp}::refresh_hint_blocks (sqlite3 *const sql, const std::set< std::string, std::less<> > &affected, std::map< std::string, hint_label, std::less<> > &label_cache)
std::set< hint_pairarachne::penelope::anonymous_namespace{inbox.cpp}::incrementally_blocked_pairs (sqlite3 *const sql, const std::set< std::string, std::less<> > &affected)
std::set< hint_pairarachne::penelope::anonymous_namespace{inbox.cpp}::all_blocked_pairs (sqlite3 *const sql)
void arachne::penelope::anonymous_namespace{inbox.cpp}::bootstrap_hint_blocks_if_empty (sqlite3 *const sql)
std::set< std::string, std::less<> > arachne::penelope::anonymous_namespace{inbox.cpp}::query_value_set (sqlite3 *const sql, const std::string_view query_text, const std::string &id)
double arachne::penelope::anonymous_namespace{inbox.cpp}::jaccard (const std::set< std::string, std::less<> > &left, const std::set< std::string, std::less<> > &right)
std::size_t arachne::penelope::anonymous_namespace{inbox.cpp}::intersection_count (const std::set< std::string, std::less<> > &left, const std::set< std::string, std::less<> > &right)
double arachne::penelope::anonymous_namespace{inbox.cpp}::maximum_text_similarity (const std::vector< std::string > &left, const std::vector< std::string > &right)
double arachne::penelope::anonymous_namespace{inbox.cpp}::alternate_text_similarity (const hint_label &left, const hint_label &right)
hint_components arachne::penelope::anonymous_namespace{inbox.cpp}::calculate_hint_components (sqlite3 *const sql, const hint_label &left, const hint_label &right)
void arachne::penelope::anonymous_namespace{inbox.cpp}::upsert_hint (sqlite3 *const sql, const hint_label &first, const hint_label &second)
void arachne::penelope::anonymous_namespace{inbox.cpp}::regenerate_incremental_hints (sqlite3 *const sql, const std::set< std::string, std::less<> > &affected)
std::size_t arachne::penelope::anonymous_namespace{inbox.cpp}::rebuild_hints (database &product)
bool arachne::penelope::anonymous_namespace{inbox.cpp}::batch_was_applied (sqlite3 *const sql, const std::string &batch_id)
void arachne::penelope::anonymous_namespace{inbox.cpp}::require_clean_foreign_keys (sqlite3 *const sql)
void arachne::penelope::anonymous_namespace{inbox.cpp}::record_issues (database &product, const std::string &batch_id, const std::vector< inbox_issue > &issues)
void arachne::penelope::anonymous_namespace{inbox.cpp}::apply_one_batch (parsed_batch &batch, database &product)
bool arachne::penelope::anonymous_namespace{inbox.cpp}::real_directory (const fs::path &path)
void arachne::penelope::anonymous_namespace{inbox.cpp}::require_real_directory (const fs::path &path, const std::string_view description)
void arachne::penelope::anonymous_namespace{inbox.cpp}::require_real_database_file (const fs::path &path)
std::string arachne::penelope::anonymous_namespace{inbox.cpp}::read_schema (const fs::path &path)
void arachne::penelope::anonymous_namespace{inbox.cpp}::ensure_product_database (const fs::path &repository_root, const fs::path &path)
std::vector< file_snapshotarachne::penelope::anonymous_namespace{inbox.cpp}::snapshot_inbox (const fs::path &inbox)
parsed_batch arachne::penelope::anonymous_namespace{inbox.cpp}::parse_batch (file_snapshot snapshot)
void arachne::penelope::anonymous_namespace{inbox.cpp}::reject_duplicate_pending_ids (std::vector< parsed_batch > &batches, sqlite3 *const sql)
void arachne::penelope::anonymous_namespace{inbox.cpp}::remove_unchanged (const file_snapshot &snapshot)
void arachne::penelope::anonymous_namespace{inbox.cpp}::move_rejected_unchanged (const file_snapshot &snapshot, const fs::path &rejected)
void arachne::penelope::anonymous_namespace{inbox.cpp}::record_and_move_rejected (parsed_batch &batch, database &product, const fs::path &rejected)
inbox_batch_report arachne::penelope::anonymous_namespace{inbox.cpp}::report_for (const parsed_batch &batch, const inbox_batch_status status)
inbox_result arachne::penelope::anonymous_namespace{inbox.cpp}::run_inbox (const fs::path &repository_root, const bool apply)
const char * arachne::penelope::to_string (inbox_batch_status status) noexcept
inbox_result arachne::penelope::check_product_inbox (const fs::path &repository_root)
inbox_result arachne::penelope::apply_product_inbox (const fs::path &repository_root)
std::size_t arachne::penelope::rebuild_product_merge_hints (const fs::path &repository_root)

Variables

constexpr std::uintmax_t arachne::penelope::anonymous_namespace{inbox.cpp}::maximum_batch_bytes = 32U * 1024U * 1024U
constexpr int arachne::penelope::anonymous_namespace{inbox.cpp}::current_product_schema = 5
const std::set< std::string, std::less<> > arachne::penelope::anonymous_namespace{inbox.cpp}::agent_types
const std::set< std::string, std::less<> > arachne::penelope::anonymous_namespace{inbox.cpp}::media
const std::set< std::string, std::less<> > arachne::penelope::anonymous_namespace{inbox.cpp}::date_precisions
const std::set< std::string, std::less<> > arachne::penelope::anonymous_namespace{inbox.cpp}::concept_types
const std::set< std::string, std::less<> > arachne::penelope::anonymous_namespace{inbox.cpp}::manifestation_types
const std::set< std::string, std::less<> > arachne::penelope::anonymous_namespace{inbox.cpp}::name_types
const std::set< std::string, std::less<> > arachne::penelope::anonymous_namespace{inbox.cpp}::source_types
const std::set< std::string, std::less<> > arachne::penelope::anonymous_namespace{inbox.cpp}::stances
const std::set< std::string, std::less<> > arachne::penelope::anonymous_namespace{inbox.cpp}::credit_roles
const std::set< std::string, std::less<> > arachne::penelope::anonymous_namespace{inbox.cpp}::importance_values
const std::set< std::string, std::less<> > arachne::penelope::anonymous_namespace{inbox.cpp}::measurement_types
const std::set< std::string, std::less<> > arachne::penelope::anonymous_namespace{inbox.cpp}::measurement_units
const std::set< std::string, std::less<> > arachne::penelope::anonymous_namespace{inbox.cpp}::concept_relation_types
const std::set< std::string, std::less<> > arachne::penelope::anonymous_namespace{inbox.cpp}::work_concept_types
const std::set< std::string, std::less<> > arachne::penelope::anonymous_namespace{inbox.cpp}::historical_roles
const std::set< std::string, std::less<> > arachne::penelope::anonymous_namespace{inbox.cpp}::guide_categories
const std::set< std::string, std::less<> > arachne::penelope::anonymous_namespace{inbox.cpp}::spoiler_levels
const std::map< std::string, value_kind, std::less<> > arachne::penelope::anonymous_namespace{inbox.cpp}::agent_mutable
const std::map< std::string, value_kind, std::less<> > arachne::penelope::anonymous_namespace{inbox.cpp}::agent_merge_mutable
const std::map< std::string, value_kind, std::less<> > arachne::penelope::anonymous_namespace{inbox.cpp}::work_mutable
const std::map< std::string, value_kind, std::less<> > arachne::penelope::anonymous_namespace{inbox.cpp}::concept_mutable
const std::map< std::string, value_kind, std::less<> > arachne::penelope::anonymous_namespace{inbox.cpp}::manifestation_mutable
const std::map< std::string, value_kind, std::less<> > arachne::penelope::anonymous_namespace{inbox.cpp}::source_mutable
const std::map< std::string, std::set< std::string, std::less<> >, std::less<> > arachne::penelope::anonymous_namespace{inbox.cpp}::agent_update_enums
const std::map< std::string, std::set< std::string, std::less<> >, std::less<> > arachne::penelope::anonymous_namespace{inbox.cpp}::agent_merge_enums
const std::map< std::string, std::set< std::string, std::less<> >, std::less<> > arachne::penelope::anonymous_namespace{inbox.cpp}::work_update_enums
const std::map< std::string, std::set< std::string, std::less<> >, std::less<> > arachne::penelope::anonymous_namespace{inbox.cpp}::concept_update_enums
const std::map< std::string, std::set< std::string, std::less<> >, std::less<> > arachne::penelope::anonymous_namespace{inbox.cpp}::manifestation_update_enums
const std::map< std::string, std::set< std::string, std::less<> >, std::less<> > arachne::penelope::anonymous_namespace{inbox.cpp}::source_update_enums