Skip to documentation
SLOP

tiny.smg.command.scan.json

Reference tiny.smg command scan json

Defined in command.scan.

API (1)

Actions

Public operations.

No direct callersNo direct callscommand.scanjson
Static calls · unresolved targets: unknown · external targets: unknown.

Source

Called byCallsNo direct callersprivate; no linktools.smg.src.command.scan.jsonorphanedEdgesprivate; no linktools.smg.src.command.scan.jsonskippedAdviceprivate; no linktools.smg.src.command.scan.jsonskippedSamplesprivate; no linktools.smg.src.command.scan.jsonstatsCountscommand.scan.jsonrender
Static calls · unresolved targets: 1 · external targets: 7.

Source: tools/smg/src/command/scan/json.zig

zig
const std = @import("std");const pretty_json = @import("pretty").json;const smg = @import("../../root.zig");const counts = smg.command.scan.counts;const hints = smg.command.scan.hints;const scan = smg.scan;pub fn render(allocator: std.mem.Allocator, stats: scan.Stats, full: bool) ![]const u8 {    var out: std.Io.Writer.Allocating = .init(allocator);    errdefer out.deinit();    var writer = pretty_json.Writer.init(&out.writer, .minified);    try writer.beginObject();    try writer.objectField("files");    try writer.write(stats.files);    try writer.objectField("nodes_added");    try writer.write(stats.nodes_added);    try writer.objectField("nodes_removed");    try writer.write(stats.nodes_removed);    try writer.objectField("edges_added");    try writer.write(stats.edges_added);    try writer.objectField("edges_removed");    try writer.write(stats.edges_removed);    try writer.objectField("skipped_edges");    try writer.write(stats.skipped_edges);    try writer.objectField("skipped_edge_categories");    try statsCounts(&writer, stats.skipped_edge_categories.items);    try writer.objectField("skipped_edge_advice");    try skippedAdvice(allocator, &writer, stats.skipped_edge_categories.items);    try writer.objectField("languages");    try statsCounts(&writer, stats.lang_counts.items);    try writer.objectField("types");    try statsCounts(&writer, stats.type_counts.items);    if (full and stats.skipped_edge_samples.items.len != 0) {        try writer.objectField("skipped_edge_samples");        try skippedSamples(&writer, stats.skipped_edge_samples.items);    }    if (full and stats.orphaned_manual_edges.items.len != 0) {        try writer.objectField("orphaned_manual_edges");        try orphanedEdges(&writer, stats.orphaned_manual_edges.items);    }    try writer.objectField("full");    try writer.write(full);    try writer.endObject();    try out.writer.writeByte('\n');    return try out.toOwnedSlice();}fn statsCounts(writer: *pretty_json.Writer, count_items: []const scan.Count) !void {    try writer.beginObject();    for (count_items) |item| {        try writer.objectField(item.name);        try writer.write(item.count);    }    try writer.endObject();}fn skippedAdvice(allocator: std.mem.Allocator, writer: *pretty_json.Writer, count_items: []const scan.Count) !void {    const sorted_items = try counts.sorted(allocator, count_items);    try writer.beginArray();    for (sorted_items) |item| {        try writer.beginObject();        try writer.objectField("category");        try writer.write(item.name);        try writer.objectField("count");        try writer.write(item.count);        try writer.objectField("hint");        try writer.write(hints.text(item.name));        try writer.endObject();    }    try writer.endArray();}fn skippedSamples(writer: *pretty_json.Writer, samples: []const scan.SkippedEdgeSample) !void {    try writer.beginArray();    for (samples) |sample| {        try writer.beginObject();        try writer.objectField("source");        try writer.write(sample.source);        try writer.objectField("rel");        try writer.write(sample.rel);        try writer.objectField("target");        try writer.write(sample.target);        try writer.objectField("reason");        try writer.write(sample.reason);        try writer.objectField("category");        try writer.write(sample.category);        try writer.endObject();    }    try writer.endArray();}fn orphanedEdges(writer: *pretty_json.Writer, edges: []const scan.OrphanedManualEdge) !void {    try writer.beginArray();    for (edges) |edge| {        try writer.beginObject();        try writer.objectField("source");        try writer.write(edge.source);        try writer.objectField("rel");        try writer.write(edge.rel);        try writer.objectField("target");        try writer.write(edge.target);        try writer.objectField("reason");        try writer.write(edge.reason);        try writer.endObject();    }    try writer.endArray();}

Source: tools/smg/src/command/scan/root.zig:6

zig
pub const json = @import("json.zig");

Audit

Definitions2
Public names3
Members0
Version26.7.0
Revisiondaab053ee433