


# MapResult class













## Constructors

[MapResult](../zircon/MapResult/MapResult.md) (int status, [Uint8List _data])

  _const_ 


## Properties

##### [data](../zircon/MapResult/data.md) &#8594; Uint8List



  
_<span class="feature">read-only</span>_



##### [hashCode](../zircon/MapResult/hashCode.md) &#8594; int



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



##### [runtimeType](../zircon/MapResult/runtimeType.md) &#8594; Type



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



##### [status](../zircon/MapResult/status.md) &#8594; int



  
_<span class="feature">final</span><span class="feature">inherited</span>_





## Methods

##### [noSuchMethod](../zircon/MapResult/noSuchMethod.md)(Invocation invocation) dynamic



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



##### [toString](../zircon/MapResult/toString.md)() String



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





## Operators

##### [operator ==](../zircon/MapResult/operator_equals.md)(Object other) bool



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















