liblevenshtein 4.0.0.rc.4 → 4.0.0.rc.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5e0447f4c670e2d48cb721bfb330831b320ef57f3580feb840ef9adc364be2e8
4
- data.tar.gz: b0786629ebef0234f71b2447407382223c41d1ecdd74b3855698c8606b59f9d6
3
+ metadata.gz: 9724e58f0c2d57b9e3ace37a5603a2a70bc375c4d2d375d877ea32f01fa4ca2a
4
+ data.tar.gz: a6c43bbe2fe2ea4594219ee892c20c57170093ae95c5b0bf2de20561b0f6117d
5
5
  SHA512:
6
- metadata.gz: ca25c7833979b3bfb28c27482df10b0b66d27c1579f82428fb5546cec1d17d733144410c75d5954ca4a258ecd10c91a44c279128c94191f0afbf2f1d8a703b9e
7
- data.tar.gz: 37f91fceaa43d5b75e9690a59cac3d8d63e2b701e32b31c64957f69b847810ac2be57c2d6d60b6cc628babc20b154bf3a47ed0b34817d9a9eed480c25fb9b8dd
6
+ metadata.gz: 0c8d6ca4708673a1e1a1a88d9b351bd3d40c1bf2de8ba2d2e86ec9dc6042b59ee2ecae502718b7bbecec747ae7fc3a53fb89a41a380bd6dc6bf6343bb8ab23c1
7
+ data.tar.gz: 7b0d0fca7cc470ddd581089bd5fdfa31da3efed99bcd491ca31d8db7970806f1010fc107e4b29595016be1f3469d999119a51f4eb7f10949b3f01331f9aa33f6
data/README.md CHANGED
@@ -62,6 +62,72 @@ Ruby strings use explicit encoding rules; byte strings and integer arrays select
62
62
  unsigned 64-bit identifier range are represented explicitly; no facade may use
63
63
  a sentinel value that removes a valid input from the domain.
64
64
 
65
+ ### Facade symbol index
66
+
67
+ This table is generated from the same exhaustive model as the binding
68
+ conformance gate. A public symbol may implement several ABI operations when
69
+ the host language expresses domain or lifecycle choices with overloads,
70
+ variants, protocols, or methods.
71
+
72
+ | Public symbol | Backing native operation(s) | Capability |
73
+ |---|---|---|
74
+ | `Error` | `llev_last_error_message` | typed failure diagnostics |
75
+ | `Liblevenshtein.damerau_distance` | `llev_damerau_distance` | standalone exact or thresholded distance |
76
+ | `Liblevenshtein.damerau_distance_threshold` | `llev_damerau_distance_threshold` | standalone exact or thresholded distance |
77
+ | `Liblevenshtein.distance` | `llev_distance` | standalone exact or thresholded distance |
78
+ | `Liblevenshtein.distance_threshold` | `llev_distance_threshold` | standalone exact or thresholded distance |
79
+ | `Liblevenshtein.true_damerau_distance` | `llev_true_damerau_distance` | standalone true-Damerau distance |
80
+ | `Liblevenshtein.true_damerau_distance_threshold` | `llev_true_damerau_distance_threshold` | standalone true-Damerau distance |
81
+ | `PhoneticPattern#close` | `llev_phonetic_pattern_free` | compiled phonetic-pattern lifecycle and matching |
82
+ | `PhoneticPattern#matches?` | `llev_phonetic_pattern_matches` | compiled phonetic-pattern lifecycle and matching |
83
+ | `PhoneticPattern#size` | `llev_phonetic_pattern_size` | compiled phonetic-pattern lifecycle and matching |
84
+ | `PhoneticPattern.compile_llre` | `llev_phonetic_pattern_compile_llre` | compiled phonetic-pattern lifecycle and matching |
85
+ | `PhoneticPattern.compile_regex` | `llev_phonetic_pattern_compile_regex` | compiled phonetic-pattern lifecycle and matching |
86
+ | `PhoneticRuleSet#apply` | `llev_owned_string_free`, `llev_phonetic_rules_apply` | owned result-string release; phonetic rule-set lifecycle and rewriting |
87
+ | `PhoneticRuleSet#close` | `llev_phonetic_rules_free` | phonetic rule-set lifecycle and rewriting |
88
+ | `PhoneticRuleSet#length` | `llev_phonetic_rules_len` | phonetic rule-set lifecycle and rewriting |
89
+ | `PhoneticRuleSet.builtin` | `llev_phonetic_rules_builtin` | phonetic rule-set lifecycle and rewriting |
90
+ | `PhoneticRuleSet.parse` | `llev_phonetic_rules_parse` | phonetic rule-set lifecycle and rewriting |
91
+ | `Query#close` | `llev_query_cursor_free` | streaming result traversal and batch leases |
92
+ | `Query#each` | `llev_query_cursor_next_batch`, `llev_query_cursor_release_batch` | streaming result traversal and batch leases |
93
+ | `Transducer#close` | `llev_transducer_free` | transducer lifecycle, snapshot, or domain metadata |
94
+ | `Transducer#initialize` | `llev_transducer_new` | transducer lifecycle, snapshot, or domain metadata |
95
+ | `Transducer#query` | `llev_transducer_query_utf8` | domain-preserving dictionary query |
96
+ | `Transducer#query_bytes` | `llev_transducer_query_bytes` | domain-preserving dictionary query |
97
+ | `Transducer#query_pattern` | `llev_transducer_query_pattern` | phonetic-pattern dictionary query |
98
+ | `Transducer#query_u64` | `llev_transducer_query_u64` | domain-preserving dictionary query |
99
+
100
+ ### Public types and traversal protocols
101
+
102
+ | Facade type or protocol | Purpose | Exposure note |
103
+ |---|---|---|
104
+ | `Error#status` | Typed native status or error carrier | Public facade type |
105
+ | `Transducer::STANDARD` | Edit-distance algorithm selection | STANDARD/TRANSPOSITION/MERGE_AND_SPLIT/DAMERAU_LEVENSHTEIN constants |
106
+ | `PhoneticRuleSet::ENGLISH_ORTHOGRAPHY` | Built-in phonetic rule-set selection | ENGLISH_ORTHOGRAPHY/ENGLISH_PHONETIC constants |
107
+ | `Query#each` | One-shot owned-result iteration | Public facade protocol |
108
+
109
+ ### Facade-encapsulated model values
110
+
111
+ | Model value | Idiomatic treatment |
112
+ |---|---|
113
+ | `queryOrder` | Transducer#query takes a raw integer order: keyword; named constants are not provided |
114
+ | `reducer` | no public batch-reduction entry point; the safe iterator leases and materializes one bounded native batch at a time internally |
115
+
116
+ Native operations omitted from the public-symbol table are deliberately
117
+ encapsulated by the facade. The generated completeness matrix records every
118
+ such operation with its reviewed rationale; an unreasoned absence fails CI.
119
+
120
+ ### Intended usage paths
121
+
122
+ | Need | Use | Rationale |
123
+ |---|---|---|
124
+ | Repeated fuzzy queries | Reuse one transducer and create a fresh cursor per query | Construction retains a provider in constant time; each cursor captures its own immutable revision. |
125
+ | Ordinary streaming | The facade iterator protocol | It materializes bounded owned values and supports early termination with deterministic close. |
126
+ | Maximum result throughput | The facade batch/reducer protocol | It amortizes the foreign boundary and keeps borrowed views inside one lexical lease. |
127
+ | Repeated phonetic matching | Compile a phonetic pattern once, then query or match repeatedly | Compilation is separated from traversal and the compiled handle is immutable. |
128
+ | Repeated phonetic rewriting | Parse or select a rule set once, then apply it repeatedly | Rule validation and allocation are amortized while each returned string remains independently owned. |
129
+ | Cross-project dictionaries | Pass the retained dictionary resource directly | The versioned resource preserves snapshot identity without serialization or shared Rust layout. |
130
+
65
131
  For the exhaustive native function contract—including exact preconditions,
66
132
  returnable statuses, complexity, and thread-safety—use the
67
133
  [`llev_*` C ABI reference](../../docs/bindings/c-abi-reference.md). The facade
@@ -1,5 +1,5 @@
1
1
  module VinaryTree
2
2
  module Liblevenshtein
3
- VERSION = "4.0.0.rc.4"
3
+ VERSION = "4.0.0.rc.5"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: liblevenshtein
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.0.rc.4
4
+ version: 4.0.0.rc.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dylon Edwards