# CStruct Examples
require 'cstruct'

# example:
module NS1    #namespace
    class A < CStruct
        uint32:handle
    end
  
    module NS2
        class B < CStruct
            A:a        # directly use A
        end 
    end

    class C < CStruct
      A     :a
      NS2_B :b        # Meaning of the 'NS2_B' is NS2::B
    end        
end

class D < CStruct
    NS1_NS2_B:b        # Meaning of the 'NS1_NS2_B' is NS1::NS2::B
end        

v = D.new
v.b.a.handle = 120
p D.__size__
p v.b.a.handle