namespace CppSharp.AST
{
///
/// Represents a a C/C++ record field Decl.
///
public class Field : Declaration, ITypedDecl
{
public Type Type { get { return QualifiedType.Type; } }
public QualifiedType QualifiedType { get; set; }
public uint Offset { get; set; }
public Class Class { get; set; }
public uint OffsetInBytes
{
get { return Offset / (sizeof (byte) * 8); }
}
public Expression Expression { get; set; }
public Field()
{
Offset = 0;
}
public Field(string name, QualifiedType type, AccessSpecifier access)
{
Name = name;
QualifiedType = type;
Access = access;
Offset = 0;
}
public Field(Field field): base(field)
{
QualifiedType = field.QualifiedType;
Offset = field.Offset;
Class = field.Class;
Expression = field.Expression;
}
public override T Visit(IDeclVisitor visitor)
{
return visitor.VisitFieldDecl(this);
}
}
}