text: 
  // AUTO GENERATED by vnxcppcodegen
  
  #ifndef INCLUDE_mmx_exchange_open_order_t_HXX_
  #define INCLUDE_mmx_exchange_open_order_t_HXX_
  
  #include <vnx/Type.h>
  #include <mmx/exchange/package.hxx>
  #include <mmx/exchange/amount_t.hxx>
  #include <mmx/utxo_t.hxx>
  
  
  namespace mmx {
  namespace exchange {
  
  struct open_order_t {
  	
  	
  	::mmx::utxo_t bid;
  	::mmx::exchange::amount_t ask;
  	uint32_t wallet = 0;
  	uint64_t offer_id = 0;
  	
  	static const vnx::Hash64 VNX_TYPE_HASH;
  	static const vnx::Hash64 VNX_CODE_HASH;
  	
  	static constexpr uint64_t VNX_TYPE_ID = 0x4339172b6fea1072ull;
  	
  	open_order_t() {}
  	
  	vnx::Hash64 get_type_hash() const;
  	std::string get_type_name() const;
  	const vnx::TypeCode* get_type_code() const;
  	
  	static std::shared_ptr<open_order_t> create();
  	std::shared_ptr<open_order_t> clone() const;
  	
  	void read(vnx::TypeInput& _in, const vnx::TypeCode* _type_code, const uint16_t* _code);
  	void write(vnx::TypeOutput& _out, const vnx::TypeCode* _type_code, const uint16_t* _code) const;
  	
  	void read(std::istream& _in);
  	void write(std::ostream& _out) const;
  	
  	template<typename T>
  	void accept_generic(T& _visitor) const;
  	void accept(vnx::Visitor& _visitor) const;
  	
  	vnx::Object to_object() const;
  	void from_object(const vnx::Object& object);
  	
  	vnx::Variant get_field(const std::string& name) const;
  	void set_field(const std::string& name, const vnx::Variant& value);
  	
  	friend std::ostream& operator<<(std::ostream& _out, const open_order_t& _value);
  	friend std::istream& operator>>(std::istream& _in, open_order_t& _value);
  	
  	static const vnx::TypeCode* static_get_type_code();
  	static std::shared_ptr<vnx::TypeCode> static_create_type_code();
  	
  };
  
  template<typename T>
  void open_order_t::accept_generic(T& _visitor) const {
  	_visitor.template type_begin<open_order_t>(4);
  	_visitor.type_field("bid", 0); _visitor.accept(bid);
  	_visitor.type_field("ask", 1); _visitor.accept(ask);
  	_visitor.type_field("wallet", 2); _visitor.accept(wallet);
  	_visitor.type_field("offer_id", 3); _visitor.accept(offer_id);
  	_visitor.template type_end<open_order_t>(4);
  }
  
  
  } // namespace mmx
  } // namespace exchange
  
  
  namespace vnx {
  
  template<>
  struct is_equivalent<::mmx::exchange::open_order_t> {
  	bool operator()(const uint16_t* code, const TypeCode* type_code);
  };
  
  } // vnx
  
  #endif // INCLUDE_mmx_exchange_open_order_t_HXX_
  