code.vegaprotocol.io/vega@v0.79.0/libs/num/wrapped.go (about)

     1  // Copyright (C) 2023 Gobalsky Labs Limited
     2  //
     3  // This program is free software: you can redistribute it and/or modify
     4  // it under the terms of the GNU Affero General Public License as
     5  // published by the Free Software Foundation, either version 3 of the
     6  // License, or (at your option) any later version.
     7  //
     8  // This program is distributed in the hope that it will be useful,
     9  // but WITHOUT ANY WARRANTY; without even the implied warranty of
    10  // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    11  // GNU Affero General Public License for more details.
    12  //
    13  // You should have received a copy of the GNU Affero General Public License
    14  // along with this program.  If not, see <http://www.gnu.org/licenses/>.
    15  
    16  package num
    17  
    18  type WrappedDecimal struct {
    19  	u *Uint
    20  	d Decimal
    21  }
    22  
    23  // NewWrappedDecimal returns a new instance of a decimal coupled with the Uint representation that has been chosen for it.
    24  func NewWrappedDecimal(integerRepresentation *Uint, underlyingValue Decimal) WrappedDecimal {
    25  	return WrappedDecimal{u: integerRepresentation, d: underlyingValue}
    26  }
    27  
    28  // Representation returns the Uint representation of a decimal that has been affixed when calling the constructor.
    29  func (w WrappedDecimal) Representation() *Uint {
    30  	return w.u.Clone()
    31  }
    32  
    33  // Original returns the underlying decimal value.
    34  func (w WrappedDecimal) Original() Decimal {
    35  	return w.d
    36  }