Skip to documentation
SLOP

tiny.smg.span

Reference tiny.smg span

Defined in tiny.smg.

API (2)

Actions

Public operations.

No direct callersNo direct callstiny.smgspan
Static calls · unresolved targets: unknown · external targets: unknown.

Source

Called byCallstest; no linktools.smg.src.spantest: trimmed span removes surroundin...spantrimmedspanstartsWith
Static calls · unresolved targets: 0 · external targets: 0.
Called byCallsspanstartsWithtest; no linktools.smg.src.spantest: trimmed span removes surroundin...lineslineEndBytelineslineStartBytespantrimmed
Static calls · unresolved targets: 0 · external targets: 0.

Source: tools/smg/src/root.zig:32

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

Source: tools/smg/src/span.zig

zig
const std = @import("std");const lines = @import("lines.zig");pub fn trimmed(source_lines: lines.SourceLines, line: i64, end_line: i64) []const u8 {    const start_raw = lines.lineStartByte(source_lines, line);    const end_raw = lines.lineEndByte(source_lines, end_line);    if (start_raw >= end_raw) return "";    var start = start_raw;    var end = end_raw;    while (start < end and std.ascii.isWhitespace(source_lines.source[start])) start += 1;    while (end > start and std.ascii.isWhitespace(source_lines.source[end - 1])) end -= 1;    return source_lines.source[start..end];}pub fn startsWith(source_lines: lines.SourceLines, line: i64, end_line: i64, prefix: []const u8) bool {    return std.mem.startsWith(u8, trimmed(source_lines, line, end_line), prefix);}test "trimmed span removes surrounding whitespace" {    const source = "  first\r\nsecond\n third";    var source_lines = try lines.SourceLines.init(std.testing.allocator, .{ .source = source });    defer source_lines.deinit(std.testing.allocator);    source_lines.fill();    source_lines.activate();    try std.testing.expectEqualStrings("first", trimmed(source_lines, 1, 1));    try std.testing.expect(startsWith(source_lines, 3, 3, "third"));}

Audit

Definitions3
Public names3
Members0
Version26.7.0
Revisiondaab053ee433