diff --git a/src/FsSpreadsheet/FsAddress.fs b/src/FsSpreadsheet/FsAddress.fs index 3536164c..ddfb1b75 100644 --- a/src/FsSpreadsheet/FsAddress.fs +++ b/src/FsSpreadsheet/FsAddress.fs @@ -130,4 +130,30 @@ type FsAddress(rowNumber : int, columnNumber : int, fixedRow : bool, fixedColumn /// Updates the row- and columnIndex respective to the given indices. member self.UpdateIndices(rowIndex,colIndex) = _columnNumber <- colIndex - _rowNumber <- rowIndex \ No newline at end of file + _rowNumber <- rowIndex + + /// Updates the row- and columnIndex of a given FsAddress respective to the given indices. + static member updateIndices rowIndex colIndex (address : FsAddress) = + address.UpdateIndices(rowIndex, colIndex) + + /// Returns the row- and the columnIndex of the FsAddress. + /// A tuple consisting of the rowIndex (fst) and the columnIndex (snd). + member self.ToIndices() = _rowNumber,_columnNumber + + /// Returns the row- and the columnIndex of a given FsAddress. + /// A tuple consisting of the rowIndex (fst) and the columnIndex (snd). + static member toIndices (address : FsAddress) = + address.ToIndices() + + /// Compares the FsAddress with a given other one. + /// Returns true if both FsAddresses are equal. + member self.Compare(address : FsAddress) = + self.Address = address.Address && + self.ColumnNumber = address.ColumnNumber && + self.RowNumber = address.RowNumber && + self.FixedColumn = address.FixedColumn && + self.FixedRow = address.FixedRow + + /// Checks if 2 FsAddresses are equal. + static member compare (address1 : FsAddress) (address2 : FsAddress) = + address1.Compare address2 \ No newline at end of file