text: #ifndef BIT_H__
  #define BIT_H__
  #include "emp-tool/execution/circuit_execution.h"
  #include "emp-tool/execution/protocol_execution.h"
  #include "emp-tool/utils/utils.h"
  #include "emp-tool/utils/block.h"
  #include "emp-tool/circuits/swappable.h"
  
  namespace emp {
  class Bit : public Swappable<Bit>{ public:
  	Label bit0;
  	Label bit1;
  
  	Bit(bool _b = false, int party = PUBLIC);
  	Bit(const Label& a0, const Label& a1) {
  		memcpy(&bit0, &a0, sizeof(Label));
  		memcpy(&bit1, &a1, sizeof(Label));
  	}
  
  	template<typename O = bool> 
  	O reveal(int party = PUBLIC) const;
  
  	Bit operator!=(const Bit& rhs) const; 
  	Bit operator==(const Bit& rhs) const;
  	Bit operator &(const Bit& rhs) const;  
  	Bit operator |(const Bit& rhs) const;
  	Bit operator !() const; 
  
  	//swappable
  	Bit select(const Bit & select, const Bit & new_v)const ;
  	Bit operator ^(const Bit& rhs) const;
  
  	//batcher
  	template<typename... Args>
  	static size_t bool_size(Args&&... args) {
  		return 1;
  	}
  
  	static void bool_data(bool *b, bool data) {
  		b[0] = data;
  	}
  
      /*
  	Bit(size_t size, const block* a) {
  		memcpy(&bit, a, sizeof(block));
  	}
      */
  };
  #include "emp-tool/circuits/bit.hpp"
  }
  #endif
  