| // CODYlib -*- mode:c++ -*- |
| // Copyright (C) 2020 Nathan Sidwell, nathan@acm.org |
| // License: Apache v2.0 |
| |
| // Cody |
| #include "internal.hh" |
| |
| namespace Cody { |
| |
| void Packet::Destroy () |
| { |
| switch (cat) |
| { |
| case STRING: |
| // Silly scope destructor name rules |
| using S = std::string; |
| string.~S (); |
| break; |
| |
| case VECTOR: |
| using V = std::vector<std::string>; |
| vector.~V (); |
| break; |
| |
| default:; |
| } |
| } |
| |
| void Packet::Create (Packet &&t) |
| { |
| cat = t.cat; |
| code = t.code; |
| request = t.request; |
| switch (cat) |
| { |
| case STRING: |
| new (&string) std::string (std::move (t.string)); |
| break; |
| |
| case VECTOR: |
| new (&vector) std::vector<std::string> (std::move (t.vector)); |
| break; |
| |
| default: |
| integer = t.integer; |
| break; |
| } |
| } |
| |
| } |