ltsv-d is a LTSV implementation for D
- fromLTSV
Returns an associative array by default:
import ltsv;
immutable apacheLog = "host:127.0.0.1\tident:-\tuser:foo\ttime:[10/Oct/2000:13:55:36 -0700]\treq:GET /apache.gif HTTP/1.0\tstatus:200\tsize:777\treferer:http://www.example.com/start.html\tua:Mozilla/4.08 [en] (Win98; I ;Nav)";
auto record = fromLTSV(apacheLog);
assert(record["host"] == "127.0.0.1");
assert(record["size"] == "700");
Can returns a struct or class:
struct ApacheLog
{
string host, ident, user, time, req, referer, ua;
size_t size, status;
}
/// convert into struct or class directly
auto record = fromLTSV!ApacheLog(apacheLog);
assert(record.host == "127.0.0.1");
assert(record.size == 777);
/// foo:bar\thoge:fuga\tpiyo:puyo
auto line = ["foo":"bar", "hoge":"fuga", "piyo":"puyo"].toLTSV();
struct or class:
struct Test
{
string a = "D";
size_t b = 1999;
double c = 10.0;
}
/// a:D b:1999 c:10.0
auto line = Test().toLTSV();
% rdmd -unittest --main src/ltsv.d
-
LTSV official site
-
Github repository
Author | Masahiro Nakagawa |
Copyright | Copyright (c) 2013- Masahiro Nakagawa |
License | Boost Software License, Version 1.0 |