// Copyright 2015 The Vanadium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

// This file was auto-generated by the veyron vdl tool.
var vdl = require('../../../../../src/vdl');






module.exports = {};



// Types:
var _typeMyTime = new vdl.Type();
_typeMyTime.kind = vdl.Kind.INT32;
_typeMyTime.name = "v.io/x/ref/lib/vdl/testdata/nativedep2.MyTime";
_typeMyTime.freeze();
module.exports.MyTime = (vdl.Registry.lookupOrCreateConstructor(_typeMyTime));




// Consts:



// Errors:



// Services:

   
 
