Add from_nasal helper and fix to_nasal for std::vector.
This commit is contained in:
@@ -1,4 +1,6 @@
|
||||
#include "NasalHash.hxx"
|
||||
#include "from_nasal.hxx"
|
||||
#include "to_nasal.hxx"
|
||||
|
||||
#include <cstring>
|
||||
#include <iostream>
|
||||
@@ -19,19 +21,34 @@ int main(int argc, char* argv[])
|
||||
|
||||
r = to_nasal(c, "Test");
|
||||
VERIFY( strncmp("Test", naStr_data(r), naStr_len(r)) == 0 );
|
||||
VERIFY( from_nasal<std::string>(c, r) == "Test" );
|
||||
|
||||
r = to_nasal(c, std::string("Test"));
|
||||
VERIFY( strncmp("Test", naStr_data(r), naStr_len(r)) == 0 );
|
||||
VERIFY( from_nasal<std::string>(c, r) == "Test" );
|
||||
|
||||
r = to_nasal(c, 42);
|
||||
VERIFY( naNumValue(r).num == 42 );
|
||||
VERIFY( from_nasal<int>(c, r) == 42 );
|
||||
|
||||
r = to_nasal(c, 4.2);
|
||||
VERIFY( naNumValue(r).num == 4.2 );
|
||||
r = to_nasal(c, 4.2f);
|
||||
VERIFY( naNumValue(r).num == 4.2f );
|
||||
VERIFY( from_nasal<float>(c, r) == 4.2f );
|
||||
|
||||
std::vector<int> vec;
|
||||
r = to_nasal(c, vec);
|
||||
|
||||
r = to_nasal(c, "string");
|
||||
try
|
||||
{
|
||||
from_nasal<int>(c, r);
|
||||
|
||||
std::cerr << "failed: Expected bad_nasal_cast to be thrown" << std::endl;
|
||||
return 1;
|
||||
}
|
||||
catch(nasal::bad_nasal_cast&)
|
||||
{}
|
||||
|
||||
Hash hash(c);
|
||||
hash.set("vec", r);
|
||||
hash.set("vec2", vec);
|
||||
|
||||
Reference in New Issue
Block a user