


# EnvelopeContentLocation enum










**Inheritance**

- Object
- Enum
- EnvelopeContentLocation






## Constructors

[EnvelopeContentLocation](../package-fidl_fidl/EnvelopeContentLocation/EnvelopeContentLocation.md) ()

  _const_ 


## Values

##### [inline](../package-fidl_fidl/EnvelopeContentLocation.md) const [EnvelopeContentLocation](../package-fidl_fidl/EnvelopeContentLocation.md)



  




##### [outOfLine](../package-fidl_fidl/EnvelopeContentLocation.md) const [EnvelopeContentLocation](../package-fidl_fidl/EnvelopeContentLocation.md)



  





## Properties

##### [hashCode](../package-fidl_fidl/EnvelopeContentLocation/hashCode.md) &#8594; int



The hash code for this object.  
_<span class="feature">read-only</span><span class="feature">inherited</span>_



##### [index](../package-fidl_fidl/EnvelopeContentLocation/index.md) &#8594; int



A numeric identifier for the enumerated value.  
_<span class="feature">read-only</span><span class="feature">inherited</span>_



##### [runtimeType](../package-fidl_fidl/EnvelopeContentLocation/runtimeType.md) &#8594; Type



A representation of the runtime type of the object.  
_<span class="feature">read-only</span><span class="feature">inherited</span>_





## Methods

##### [noSuchMethod](../package-fidl_fidl/EnvelopeContentLocation/noSuchMethod.md)(Invocation invocation) dynamic



Invoked when a non-existent method or property is accessed.  
_<span class="feature">inherited</span>_



##### [toString](../package-fidl_fidl/EnvelopeContentLocation/toString.md)() String



A string representation of this object.  
_<span class="feature">inherited</span>_





## Operators

##### [operator ==](../package-fidl_fidl/EnvelopeContentLocation/operator_equals.md)(Object other) bool



The equality operator.  
_<span class="feature">inherited</span>_










## Constants

##### [values](../package-fidl_fidl/EnvelopeContentLocation/values-constant.md) const List&lt;[EnvelopeContentLocation](../package-fidl_fidl/EnvelopeContentLocation.md)>



A constant List of the values in this enum, in order of their declaration.  









