BarcodeGenerator
generates a list of barcodes from a given start and end barcode.
This library allows you to generate GTIN barcodes by passing it the first and last barcode of a range.
BarcodeGenerator
allows simple check-digit validation for GTIN barcodes, both in binary and
numeric format:
BarcodeGenerator.valid?("6291041500206")
# true
BarcodeGenerator.valid?(6291041500206)
# true
BarcodeGenerator.valid?("6291041500200")
# false
BarcodeGenerator.valid?(6291041500200)
# false
BarcodeGenerator
can generate barcodes in three different ways:
BarcodeGenerator.generate/2
generates barcodes in a simple list format.
BarcodeGenerator.generate(6_291_041_500_200, 6_291_041_500_299)
BarcodeGenerator.generate_stream/2
returns a Stream
that can be enumerated. Barcodes are
generated as the stream is consumed, reducing memory footprint.
stream = BarcodeGenerator.generate_stream(6_291_041_500_200, 6_291_041_500_299)
barcodes = Enum.to_list(stream)
BarcodeGenerator.generate_flow/3
returns a Flow
, but requires that
flow
is present as dependency. Generating barcodes using Flow is
heavily optimized to use all available resources to generate as quickly as possible.
BarcodeGenerator.generate_flow/3
accepts an optional third argument, opts
, which is passed to
Flow.from_enumerable/2
, and defaults to max_demand: 1000
.
# Assuming `{:flow, "~> 1.0"}` is in mix.exs
flow = BarcodeGenerator.generate_flow(6_291_041_500_200, 6_291_041_500_299)
barcodes = Enum.to_list(flow)
Add barcode_generator
to your list of dependencies in mix.exs
:
def deps do
[{:barcode_generator, "~> 1.1.0"}]
end
This library is MIT licensed. See the LICENSE file in this repository for details.