defmodule ExBarcode do @moduledoc """ Pure Elixir barcode encoding library. Supports Code 128 (full ASCII). Returns bar patterns as lists of module widths suitable for any renderer (PDF, SVG, Canvas, etc.). ## Standard encoding {:ok, bars} = ExBarcode.encode("Hello-123") Returns alternating bar/space module widths. ## Shaped encoding (creative barcodes) {:ok, result} = ExBarcode.encode_shaped("SPOT2NITE", shape: :rv) result.bars # positioned bars with individual heights result.decorations # solid shapes (wheels, windows, etc.) Returns an `ExBarcode.Shape.Result` with normalized 0.0–1.0 coordinates. Any renderer scales to desired size. Available shapes: `:rv`, `:camper`, `:city`, `:wave`, `:diamond`, `:hill` """ defdelegate encode(text), to: ExBarcode.Code128 defdelegate encode!(text), to: ExBarcode.Code128 defdelegate total_modules(text), to: ExBarcode.Code128 defdelegate encode_shaped(text, opts), to: ExBarcode.Shape, as: :encode defdelegate encode_shaped!(text, opts), to: ExBarcode.Shape, as: :encode! defdelegate available_shapes(), to: ExBarcode.Shape end