polymorphic 1.0.0 copy "polymorphic: ^1.0.0" to clipboard
polymorphic: ^1.0.0 copied to clipboard

Generator for library code which utilizes pseudopolymorphism on the amount of type parameters

polymorphic #

polymorphic is a Dart package that enables pseudopolymorphism, allowing methods to handle a variable number of type parameters using extension methods and records with unnamed fields.

What is Pseudopolymorphism? #

Pseudopolymorphism is a technique where extension methods route based on type parameters. This allows creating methods that can handle a variable number of type parameters by using records with unnamed fields.

Implementation #

This package generates library code that utilizes pseudopolymorphism. It defines extensions/classes for different arities (number of type parameters) and generates the necessary code to handle each case.

Exposed Functions #

generate #

Future<void> generate(String path, SpecDescriptions specs)

Generates the implementation library based on the provided specifications and writes the generated code to the specified path.

Extension$ #

typedef Extension$ = Poly<Context, ExtensionUpdates>;

Defines the structure for creating extensions with variable type parameters.

Extension$X.build

Provides the build method to create an extension for a given arity.

Class$ #

Defines the structure for creating classes with variable type parameters.

Class$X.build

Provides the build method to create a class for a given arity.

Usage #

To use this package, define your extensions and classes using the provided types and functions, then call generate to create the implementation.

For example:

final Extension$ example = (
  name: 'Example',
  updates: (ctx) {
    return (
      on: ctx.letterReferences,
      methods: [],
    );
  }
);

Future<void> main() => generate('example', [example.build]);

This will generate the necessary code to handle the specified extensions and classes with variable type parameters.

0
likes
140
points
11
downloads

Publisher

verified publisheryakov.codes

Weekly Downloads

Generator for library code which utilizes pseudopolymorphism on the amount of type parameters

Documentation

API reference

License

MIT (license)

Dependencies

code_builder, dart_style

More

Packages that depend on polymorphic