pub const DIGEST: &str = "fe410e7f8ccb9a62c71bd28161f2e080";
pub const MAX_FIELDS: usize = 64;
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub struct FieldDef {
pub name: &'static str,
pub tag: u32,
pub nested: u32,
pub optional: bool,
}
#[derive(Debug, Clone, Copy)]
pub struct SchemaDef {
pub id: u32,
pub name: &'static str,
pub fields: &'static [FieldDef],
}
#[derive(Debug, Clone, Copy)]
pub struct VerbDef {
pub op: u32,
pub name: &'static str,
pub params: &'static str,
pub schema: u32,
pub many: bool,
pub entry: &'static str,
}
pub const ENUMS: &[(&str, &[&str])] = &[
(
"grade",
&["none", "weak", "moderate", "strong", "identical"],
),
("channel", &["copies", "twins", "shapes", "any"]),
("unit", &["file", "function", "match"]),
("rank_kind", &["definition", "use", "generated"]),
];
pub const SCHEMAS: &[SchemaDef] = &[
SchemaDef {
id: 1,
name: "region",
fields: FIELDS_REGION,
},
SchemaDef {
id: 2,
name: "site",
fields: FIELDS_SITE,
},
SchemaDef {
id: 3,
name: "similar",
fields: FIELDS_SIMILAR,
},
SchemaDef {
id: 4,
name: "dup_pair",
fields: FIELDS_DUP_PAIR,
},
SchemaDef {
id: 5,
name: "cluster",
fields: FIELDS_CLUSTER,
},
SchemaDef {
id: 6,
name: "echo",
fields: FIELDS_ECHO,
},
SchemaDef {
id: 7,
name: "concept",
fields: FIELDS_CONCEPT,
},
SchemaDef {
id: 8,
name: "family",
fields: FIELDS_FAMILY,
},
SchemaDef {
id: 9,
name: "distinct",
fields: FIELDS_DISTINCT,
},
SchemaDef {
id: 10,
name: "recalled",
fields: FIELDS_RECALLED,
},
SchemaDef {
id: 11,
name: "pick",
fields: FIELDS_PICK,
},
SchemaDef {
id: 12,
name: "phrase",
fields: FIELDS_PHRASE,
},
SchemaDef {
id: 13,
name: "quotation",
fields: FIELDS_QUOTATION,
},
SchemaDef {
id: 14,
name: "attribution",
fields: FIELDS_ATTRIBUTION,
},
SchemaDef {
id: 15,
name: "pattern_hit",
fields: FIELDS_PATTERN_HIT,
},
SchemaDef {
id: 16,
name: "pattern_count",
fields: FIELDS_PATTERN_COUNT,
},
SchemaDef {
id: 17,
name: "reference",
fields: FIELDS_REFERENCE,
},
SchemaDef {
id: 18,
name: "dependency",
fields: FIELDS_DEPENDENCY,
},
SchemaDef {
id: 19,
name: "ripple",
fields: FIELDS_RIPPLE,
},
SchemaDef {
id: 20,
name: "mention",
fields: FIELDS_MENTION,
},
SchemaDef {
id: 21,
name: "blast",
fields: FIELDS_BLAST,
},
SchemaDef {
id: 22,
name: "ranked",
fields: FIELDS_RANKED,
},
];
const FIELDS_REGION: &[FieldDef] = &[
FieldDef {
name: "path",
tag: 0,
nested: 0,
optional: false,
},
FieldDef {
name: "line_start",
tag: 1,
nested: 0,
optional: false,
},
FieldDef {
name: "line_end",
tag: 1,
nested: 0,
optional: false,
},
FieldDef {
name: "headline",
tag: 0,
nested: 0,
optional: true,
},
];
const FIELDS_SITE: &[FieldDef] = &[
FieldDef {
name: "path",
tag: 0,
nested: 0,
optional: false,
},
FieldDef {
name: "line",
tag: 1,
nested: 0,
optional: false,
},
];
const FIELDS_SIMILAR: &[FieldDef] = &[
FieldDef {
name: "path",
tag: 0,
nested: 0,
optional: false,
},
FieldDef {
name: "distance",
tag: 2,
nested: 0,
optional: false,
},
FieldDef {
name: "grade",
tag: 4,
nested: 1,
optional: false,
},
FieldDef {
name: "channel",
tag: 4,
nested: 2,
optional: false,
},
];
const FIELDS_DUP_PAIR: &[FieldDef] = &[
FieldDef {
name: "a",
tag: 0,
nested: 0,
optional: false,
},
FieldDef {
name: "b",
tag: 0,
nested: 0,
optional: false,
},
FieldDef {
name: "distance",
tag: 2,
nested: 0,
optional: false,
},
FieldDef {
name: "grade",
tag: 4,
nested: 1,
optional: false,
},
];
const FIELDS_CLUSTER: &[FieldDef] = &[
FieldDef {
name: "paths",
tag: 5,
nested: 0,
optional: false,
},
FieldDef {
name: "max_distance",
tag: 2,
nested: 0,
optional: false,
},
FieldDef {
name: "grade",
tag: 4,
nested: 1,
optional: false,
},
];
const FIELDS_ECHO: &[FieldDef] = &[
FieldDef {
name: "a",
tag: 0,
nested: 0,
optional: false,
},
FieldDef {
name: "b",
tag: 0,
nested: 0,
optional: false,
},
FieldDef {
name: "echo",
tag: 2,
nested: 0,
optional: false,
},
FieldDef {
name: "byte_distance",
tag: 2,
nested: 0,
optional: false,
},
FieldDef {
name: "structure_distance",
tag: 2,
nested: 0,
optional: false,
},
FieldDef {
name: "grade",
tag: 4,
nested: 1,
optional: false,
},
];
const FIELDS_CONCEPT: &[FieldDef] = &[
FieldDef {
name: "members",
tag: 6,
nested: 1,
optional: false,
},
FieldDef {
name: "repeated_lines",
tag: 1,
nested: 0,
optional: false,
},
FieldDef {
name: "confidence",
tag: 2,
nested: 0,
optional: false,
},
FieldDef {
name: "structure_distance",
tag: 2,
nested: 0,
optional: false,
},
FieldDef {
name: "byte_distance",
tag: 2,
nested: 0,
optional: true,
},
FieldDef {
name: "echo",
tag: 2,
nested: 0,
optional: true,
},
];
const FIELDS_FAMILY: &[FieldDef] = &[
FieldDef {
name: "rank",
tag: 1,
nested: 0,
optional: false,
},
FieldDef {
name: "unit",
tag: 4,
nested: 3,
optional: false,
},
FieldDef {
name: "channel",
tag: 4,
nested: 2,
optional: false,
},
FieldDef {
name: "edge",
tag: 2,
nested: 0,
optional: false,
},
FieldDef {
name: "repeated_lines",
tag: 1,
nested: 0,
optional: false,
},
FieldDef {
name: "score",
tag: 2,
nested: 0,
optional: false,
},
FieldDef {
name: "members",
tag: 6,
nested: 1,
optional: false,
},
];
const FIELDS_DISTINCT: &[FieldDef] = &[
FieldDef {
name: "unit",
tag: 4,
nested: 3,
optional: false,
},
FieldDef {
name: "member",
tag: 6,
nested: 1,
optional: false,
},
FieldDef {
name: "nearest",
tag: 6,
nested: 1,
optional: true,
},
FieldDef {
name: "byte_distance",
tag: 2,
nested: 0,
optional: false,
},
FieldDef {
name: "structure_distance",
tag: 2,
nested: 0,
optional: false,
},
];
const FIELDS_RECALLED: &[FieldDef] = &[
FieldDef {
name: "path",
tag: 0,
nested: 0,
optional: false,
},
FieldDef {
name: "gain",
tag: 2,
nested: 0,
optional: false,
},
FieldDef {
name: "cost_bits",
tag: 2,
nested: 0,
optional: false,
},
FieldDef {
name: "bits_saved",
tag: 2,
nested: 0,
optional: false,
},
FieldDef {
name: "factors",
tag: 1,
nested: 0,
optional: false,
},
FieldDef {
name: "literals",
tag: 1,
nested: 0,
optional: false,
},
];
const FIELDS_PICK: &[FieldDef] = &[
FieldDef {
name: "rank",
tag: 1,
nested: 0,
optional: false,
},
FieldDef {
name: "path",
tag: 0,
nested: 0,
optional: false,
},
FieldDef {
name: "marginal_bits",
tag: 2,
nested: 0,
optional: false,
},
FieldDef {
name: "coverage",
tag: 2,
nested: 0,
optional: false,
},
FieldDef {
name: "patterns",
tag: 5,
nested: 0,
optional: false,
},
];
const FIELDS_PHRASE: &[FieldDef] = &[
FieldDef {
name: "text",
tag: 0,
nested: 0,
optional: false,
},
FieldDef {
name: "occurrences",
tag: 1,
nested: 0,
optional: false,
},
FieldDef {
name: "bits",
tag: 2,
nested: 0,
optional: false,
},
FieldDef {
name: "source",
tag: 0,
nested: 0,
optional: true,
},
];
const FIELDS_QUOTATION: &[FieldDef] = &[
FieldDef {
name: "bits",
tag: 2,
nested: 0,
optional: false,
},
FieldDef {
name: "bits_per_byte",
tag: 2,
nested: 0,
optional: false,
},
FieldDef {
name: "quoted_bytes",
tag: 1,
nested: 0,
optional: false,
},
FieldDef {
name: "query_bytes",
tag: 1,
nested: 0,
optional: false,
},
FieldDef {
name: "escapes",
tag: 1,
nested: 0,
optional: false,
},
FieldDef {
name: "phrases",
tag: 6,
nested: 12,
optional: false,
},
];
const FIELDS_ATTRIBUTION: &[FieldDef] = &[
FieldDef {
name: "text",
tag: 0,
nested: 0,
optional: false,
},
FieldDef {
name: "occurrences",
tag: 1,
nested: 0,
optional: false,
},
FieldDef {
name: "source",
tag: 0,
nested: 0,
optional: true,
},
FieldDef {
name: "verified",
tag: 3,
nested: 0,
optional: false,
},
FieldDef {
name: "line",
tag: 1,
nested: 0,
optional: true,
},
];
const FIELDS_PATTERN_HIT: &[FieldDef] = &[
FieldDef {
name: "path",
tag: 0,
nested: 0,
optional: false,
},
FieldDef {
name: "line",
tag: 1,
nested: 0,
optional: false,
},
FieldDef {
name: "pattern_id",
tag: 1,
nested: 0,
optional: false,
},
];
const FIELDS_PATTERN_COUNT: &[FieldDef] = &[
FieldDef {
name: "label",
tag: 0,
nested: 0,
optional: false,
},
FieldDef {
name: "count",
tag: 1,
nested: 0,
optional: false,
},
];
const FIELDS_REFERENCE: &[FieldDef] = &[
FieldDef {
name: "path",
tag: 0,
nested: 0,
optional: false,
},
FieldDef {
name: "line",
tag: 1,
nested: 0,
optional: false,
},
FieldDef {
name: "enclosing",
tag: 0,
nested: 0,
optional: true,
},
FieldDef {
name: "defines",
tag: 3,
nested: 0,
optional: false,
},
];
const FIELDS_DEPENDENCY: &[FieldDef] = &[
FieldDef {
name: "symbol",
tag: 0,
nested: 0,
optional: false,
},
FieldDef {
name: "path",
tag: 0,
nested: 0,
optional: false,
},
FieldDef {
name: "line",
tag: 1,
nested: 0,
optional: false,
},
];
const FIELDS_RIPPLE: &[FieldDef] = &[
FieldDef {
name: "path",
tag: 0,
nested: 0,
optional: false,
},
FieldDef {
name: "via",
tag: 0,
nested: 0,
optional: false,
},
FieldDef {
name: "hops",
tag: 1,
nested: 0,
optional: false,
},
];
const FIELDS_MENTION: &[FieldDef] = &[
FieldDef {
name: "path",
tag: 0,
nested: 0,
optional: false,
},
FieldDef {
name: "line",
tag: 1,
nested: 0,
optional: false,
},
FieldDef {
name: "text",
tag: 0,
nested: 0,
optional: false,
},
];
const FIELDS_BLAST: &[FieldDef] = &[
FieldDef {
name: "symbol",
tag: 0,
nested: 0,
optional: false,
},
FieldDef {
name: "kind",
tag: 0,
nested: 0,
optional: false,
},
FieldDef {
name: "definitions",
tag: 6,
nested: 2,
optional: false,
},
FieldDef {
name: "dependents",
tag: 6,
nested: 17,
optional: false,
},
FieldDef {
name: "dependencies",
tag: 6,
nested: 18,
optional: false,
},
FieldDef {
name: "twins",
tag: 6,
nested: 3,
optional: false,
},
FieldDef {
name: "ripple",
tag: 6,
nested: 19,
optional: false,
},
FieldDef {
name: "comments",
tag: 6,
nested: 20,
optional: false,
},
FieldDef {
name: "notes",
tag: 5,
nested: 0,
optional: false,
},
FieldDef {
name: "omitted",
tag: 1,
nested: 0,
optional: false,
},
];
const FIELDS_RANKED: &[FieldDef] = &[
FieldDef {
name: "path",
tag: 0,
nested: 0,
optional: false,
},
FieldDef {
name: "line_number",
tag: 1,
nested: 0,
optional: false,
},
FieldDef {
name: "kind",
tag: 4,
nested: 4,
optional: false,
},
FieldDef {
name: "count",
tag: 1,
nested: 0,
optional: false,
},
FieldDef {
name: "snippet",
tag: 0,
nested: 0,
optional: true,
},
];
pub const VERBS: &[VerbDef] = &[
VerbDef {
op: 1,
name: "similar",
params: "kinship",
schema: 3,
many: true,
entry: "relate_run",
},
VerbDef {
op: 2,
name: "dups",
params: "kinship",
schema: 4,
many: true,
entry: "relate_run",
},
VerbDef {
op: 3,
name: "clusters",
params: "kinship",
schema: 5,
many: true,
entry: "relate_run",
},
VerbDef {
op: 4,
name: "echoes",
params: "kinship",
schema: 6,
many: true,
entry: "relate_run",
},
VerbDef {
op: 5,
name: "concepts",
params: "kinship",
schema: 7,
many: true,
entry: "relate_run",
},
VerbDef {
op: 6,
name: "fragments",
params: "kinship",
schema: 8,
many: true,
entry: "relate_run",
},
VerbDef {
op: 7,
name: "distinct",
params: "kinship",
schema: 9,
many: true,
entry: "relate_run",
},
VerbDef {
op: 8,
name: "recall",
params: "retrieval",
schema: 10,
many: true,
entry: "relate_run",
},
VerbDef {
op: 9,
name: "pack",
params: "retrieval",
schema: 11,
many: true,
entry: "relate_run",
},
VerbDef {
op: 10,
name: "quote",
params: "retrieval",
schema: 13,
many: false,
entry: "relate_run",
},
VerbDef {
op: 11,
name: "patterns",
params: "sweep",
schema: 15,
many: true,
entry: "relate_run",
},
VerbDef {
op: 12,
name: "pattern_counts",
params: "sweep",
schema: 16,
many: true,
entry: "relate_run",
},
VerbDef {
op: 13,
name: "context",
params: "compose",
schema: 11,
many: true,
entry: "blast_run",
},
VerbDef {
op: 14,
name: "family",
params: "compose",
schema: 8,
many: true,
entry: "blast_run",
},
VerbDef {
op: 15,
name: "provenance",
params: "compose",
schema: 14,
many: true,
entry: "blast_run",
},
VerbDef {
op: 16,
name: "blast",
params: "compose",
schema: 21,
many: false,
entry: "blast_run",
},
VerbDef {
op: 17,
name: "rank",
params: "rank",
schema: 22,
many: true,
entry: "gist_run",
},
];