//------------------------------------------------------------------------------
// <auto-generated />
//
// This file was automatically generated by SWIG (http://www.swig.org).
// Version 4.0.0
//
// Do not make changes to this file unless you know what you are doing--modify
// the SWIG interface file instead.
//------------------------------------------------------------------------------


public class neoversion_t : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal neoversion_t(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(neoversion_t obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~neoversion_t() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          icsneocsharpPINVOKE.delete_neoversion_t(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public ushort major {
    set {
      icsneocsharpPINVOKE.neoversion_t_major_set(swigCPtr, value);
    }
    get {
      ushort ret = icsneocsharpPINVOKE.neoversion_t_major_get(swigCPtr);
      return ret;
    }
  }

  public ushort minor {
    set {
      icsneocsharpPINVOKE.neoversion_t_minor_set(swigCPtr, value);
    }
    get {
      ushort ret = icsneocsharpPINVOKE.neoversion_t_minor_get(swigCPtr);
      return ret;
    }
  }

  public ushort patch {
    set {
      icsneocsharpPINVOKE.neoversion_t_patch_set(swigCPtr, value);
    }
    get {
      ushort ret = icsneocsharpPINVOKE.neoversion_t_patch_get(swigCPtr);
      return ret;
    }
  }

  public string metadata {
    set {
      icsneocsharpPINVOKE.neoversion_t_metadata_set(swigCPtr, value);
    }
    get {
      string ret = icsneocsharpPINVOKE.neoversion_t_metadata_get(swigCPtr);
      return ret;
    }
  }

  public string buildBranch {
    set {
      icsneocsharpPINVOKE.neoversion_t_buildBranch_set(swigCPtr, value);
    }
    get {
      string ret = icsneocsharpPINVOKE.neoversion_t_buildBranch_get(swigCPtr);
      return ret;
    }
  }

  public string buildTag {
    set {
      icsneocsharpPINVOKE.neoversion_t_buildTag_set(swigCPtr, value);
    }
    get {
      string ret = icsneocsharpPINVOKE.neoversion_t_buildTag_get(swigCPtr);
      return ret;
    }
  }

  public string reserved {
    set {
      icsneocsharpPINVOKE.neoversion_t_reserved_set(swigCPtr, value);
    }
    get {
      string ret = icsneocsharpPINVOKE.neoversion_t_reserved_get(swigCPtr);
      return ret;
    }
  }

  public neoversion_t() : this(icsneocsharpPINVOKE.new_neoversion_t(), true) {
  }

}
