DigitalData constructor

DigitalData({
  1. int significantFigures = 10,
  2. bool removeTrailingZeros = true,
  3. dynamic name,
})

Class for digitalData conversions, e.g. if you want to convert 1 megabit in kilobyte:

var digitalData = DigitalData(removeTrailingZeros: false);
digitalData.convert(Unit(DIGITAL_DATA.megabit, value: 1));
print(DIGITAL_DATA.kilobyte);

Implementation

DigitalData({this.significantFigures = 10, this.removeTrailingZeros = true, name}) {
  size = DIGITAL_DATA.values.length;
  this.name = name ?? PROPERTY.digitalData;
  for (DIGITAL_DATA val in DIGITAL_DATA.values) {
    unitList.add(Unit(val, symbol: mapSymbols[val]));
  }
  unitConversion = Node(name: DIGITAL_DATA.bit, leafNodes: [
    Node(
      coefficientProduct: 4.0,
      name: DIGITAL_DATA.nibble,
    ),
    Node(
      coefficientProduct: 1e3,
      name: DIGITAL_DATA.kilobit,
    ),
    Node(
      coefficientProduct: 1e6,
      name: DIGITAL_DATA.megabit,
    ),
    Node(
      coefficientProduct: 1e9,
      name: DIGITAL_DATA.gigabit,
    ),
    Node(
      coefficientProduct: 1e12,
      name: DIGITAL_DATA.terabit,
    ),
    Node(
      coefficientProduct: 1e15,
      name: DIGITAL_DATA.petabit,
    ),
    Node(
      coefficientProduct: 1e18,
      name: DIGITAL_DATA.exabit,
    ),
    Node(coefficientProduct: 1024.0, name: DIGITAL_DATA.kibibit, leafNodes: [
      Node(coefficientProduct: 1024.0, name: DIGITAL_DATA.mebibit, leafNodes: [
        Node(coefficientProduct: 1024.0, name: DIGITAL_DATA.gibibit, leafNodes: [
          Node(coefficientProduct: 1024.0, name: DIGITAL_DATA.tebibit, leafNodes: [
            Node(coefficientProduct: 1024.0, name: DIGITAL_DATA.pebibit, leafNodes: [
              Node(
                coefficientProduct: 1024.0,
                name: DIGITAL_DATA.exbibit,
              )
            ])
          ])
        ])
      ])
    ]),
    Node(coefficientProduct: 8.0, name: DIGITAL_DATA.byte, leafNodes: [
      Node(
        coefficientProduct: 1e3,
        name: DIGITAL_DATA.kilobyte,
      ),
      Node(
        coefficientProduct: 1e6,
        name: DIGITAL_DATA.megabyte,
      ),
      Node(
        coefficientProduct: 1e9,
        name: DIGITAL_DATA.gigabyte,
      ),
      Node(
        coefficientProduct: 1e12,
        name: DIGITAL_DATA.terabyte,
      ),
      Node(
        coefficientProduct: 1e15,
        name: DIGITAL_DATA.petabyte,
      ),
      Node(
        coefficientProduct: 1e18,
        name: DIGITAL_DATA.exabyte,
      ),
      Node(coefficientProduct: 1024.0, name: DIGITAL_DATA.kibibyte, leafNodes: [
        Node(coefficientProduct: 1024.0, name: DIGITAL_DATA.mebibyte, leafNodes: [
          Node(coefficientProduct: 1024.0, name: DIGITAL_DATA.gibibyte, leafNodes: [
            Node(coefficientProduct: 1024.0, name: DIGITAL_DATA.tebibyte, leafNodes: [
              Node(coefficientProduct: 1024.0, name: DIGITAL_DATA.pebibyte, leafNodes: [
                Node(
                  coefficientProduct: 1024.0,
                  name: DIGITAL_DATA.exbibyte,
                ),
              ]),
            ]),
          ]),
        ]),
      ]),
    ]),
  ]);
}