add validate email and generate uuid
This commit is contained in:
parent
fa9972b9d5
commit
bb49c6f96b
13
bin/main.cpp
13
bin/main.cpp
@ -15,6 +15,8 @@
|
||||
#include "math/matrix.hpp"
|
||||
#include "math/vector.hpp"
|
||||
#include "utils/utils.hpp"
|
||||
#include "security/validate_email.hpp"
|
||||
#include "security/generate_uuid.hpp"
|
||||
|
||||
// for example
|
||||
int f(int a)
|
||||
@ -187,4 +189,15 @@ int main(int argc, char *argv[])
|
||||
auto t = hack::utils::exec("pwd");
|
||||
hack::log::type_trace(t);
|
||||
}
|
||||
|
||||
{
|
||||
// ec: security::validate_email
|
||||
std::string email = "asdf@asdf.com";
|
||||
hack::log()(hack::security::validate_email(email));
|
||||
}
|
||||
|
||||
{
|
||||
// ec: security::generate_uuid
|
||||
hack::log()(hack::security::generate_uuid());
|
||||
}
|
||||
}
|
||||
|
22
meson.build
22
meson.build
@ -1,4 +1,3 @@
|
||||
# https://pixorblog.wordpress.com/2019/07/27/a-meson-starter-script-for-c-projects
|
||||
project(
|
||||
'hack',
|
||||
'cpp',
|
||||
@ -10,25 +9,24 @@ add_project_arguments (
|
||||
'-Wpedantic',
|
||||
'-Wshadow',
|
||||
'-Wno-comment',
|
||||
#'-Wno-gnu-zero-variadic-macro-arguments',
|
||||
'-Wno-gnu-zero-variadic-macro-arguments',
|
||||
'-Wunused-but-set-variable',
|
||||
language: 'cpp'
|
||||
)
|
||||
|
||||
compiler = meson.get_compiler('cpp')
|
||||
if compiler.get_id() == 'gcc'
|
||||
message('Compiler: GCC')
|
||||
elif compiler.get_id() == 'clang'
|
||||
message('Compiler: LLVM/clang')
|
||||
endif
|
||||
#############################################################
|
||||
|
||||
boost_dep = dependency('boost')
|
||||
|
||||
args = []
|
||||
deps = []
|
||||
deps += boost_dep
|
||||
args = []
|
||||
inc = []
|
||||
|
||||
deps += dependency('boost')
|
||||
deps += dependency('uuid')
|
||||
|
||||
args += '-luuid'
|
||||
|
||||
#############################################################
|
||||
|
||||
subdir('src')
|
||||
subdir('bin')
|
||||
subdir('tests')
|
||||
|
@ -1,6 +1,7 @@
|
||||
#pragma once
|
||||
|
||||
#include <algorithm>
|
||||
#include <vector>
|
||||
|
||||
namespace hack::container
|
||||
{
|
||||
|
21
src/security/generate_uuid.hpp
Normal file
21
src/security/generate_uuid.hpp
Normal file
@ -0,0 +1,21 @@
|
||||
#pragma once
|
||||
|
||||
#include <uuid/uuid.h>
|
||||
#include <regex>
|
||||
#include <string>
|
||||
|
||||
namespace hack::security
|
||||
{
|
||||
inline std::string generate_uuid()
|
||||
{
|
||||
std::string uuid;
|
||||
uuid_t uuid_obj;
|
||||
uuid_generate_time_safe(uuid_obj);
|
||||
char uuid_ch[37];
|
||||
uuid_unparse_lower(uuid_obj, uuid_ch);
|
||||
std::stringstream ss;
|
||||
ss << uuid_ch;
|
||||
ss >> uuid;
|
||||
return uuid;
|
||||
}
|
||||
}
|
13
src/security/validate_email.hpp
Normal file
13
src/security/validate_email.hpp
Normal file
@ -0,0 +1,13 @@
|
||||
#pragma once
|
||||
|
||||
#include <regex>
|
||||
#include <string>
|
||||
|
||||
namespace hack::security
|
||||
{
|
||||
inline bool validate_email(std::string& email)
|
||||
{
|
||||
const std::regex pattern("(\\w+)(\\.|_)?(\\w*)@(\\w+)(\\.(\\w+))+");
|
||||
return std::regex_match(email, pattern);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user