pub fn tag(&self) -> VmTag {
        match &self.0 {
            DataInner::Tag(tag) => *tag,
            DataInner::Data(data) => data.tag(),
        }
    }
/// The tag of this variant. If this value is a variant, the tag is the zero-based
/// index of the variant that is present, in order of the declaration.
///
/// Use this method to find out what variant you are dealing with, before extracting
/// data from it.
///
/// ## Examples
///
/// ```gluon
/// type OneOfFour =
///     | First
///     | Second
///     | Third
///     | Fourth
///
/// let val = First // has the tag '0'
/// let val = Fourth // has the tag '3'
/// ```
The tag of this variant. If this value is a variant, the tag is the zero-based
index of the variant that is present, in order of the declaration.

Use this method to find out what variant you are dealing with, before extracting
data from it.
The tag of this variant . If this value is a variant the tag is the zero - based index of the variant that is present in order of the declaration . Use this method to find out what variant you are dealing with before extracting data from it .
pub fn tag(&self) -> VmTag {
        match &self.0 {
            DataInner::Tag(tag) => *tag,
            DataInner::Data(data) => data.tag(),
        }
    }
pub fn tag ( & self ) -> VmTag { match & self . 0 { DataInner :: Tag ( tag ) => * tag , DataInner :: Data ( data ) => data . tag ( ) , } }
The tag of this variant.
The tag of this variant .
&self
&self
examples
```gluon
type OneOfFour
| First
| Second
| Third
| Fourth

let val = First // has the tag '0'
let val = Fourth // has the tag '3'
```
` ` ` gluon type OneOfFour | First | Second | Third | Fourth let val = First // has the tag ' 0 ' let val = Fourth // has the tag ' 3 ' ` ` `