Searches for a file extension separated by a . and returns the string after that ..
Files that end or start with . and have no other . in their name
are considered to have no extension, in which case this returns "".
Examples:
"main.zig" ⇒ ".zig""src/main.zig" ⇒ ".zig"".gitignore" ⇒ """.image.png" ⇒ ".png""keep." ⇒ ".""src.keep.me" ⇒ ".me""/src/keep.me" ⇒ ".me""/src/keep.me/" ⇒ ".me"
The returned slice is guaranteed to have its pointer within the start and end
pointer address range of path, even if it is length zero.pub fn extension(path: []const u8) []const u8
pub fn extension(path: []const u8) []const u8 {
const filename = basename(path);
const index = mem.lastIndexOfScalar(u8, filename, '.') orelse return path[path.len..];
if (index == 0) return path[path.len..];
return filename[index..];
}