copy_with_annotation 0.1.0 copy "copy_with_annotation: ^0.1.0" to clipboard
copy_with_annotation: ^0.1.0 copied to clipboard

This package generates a copyWith method using build_runner and json_serializable packages

copy_with_annotation #

This package generates a copyWith method using build_runner and json_serializable

Installation #

Add dependencies in your pubspec.yaml:

dependencies:
  copy_with_annotation:

dev_dependencies:
  copy_with:
  build_runner:

Usage #

In class you want to write toString() method:

  • Annotate the class with ToString()
  • Override the toString method.
import 'package:json_annotation/json_annotation.dart';
import 'package:copy_with_annotation/copy_with_annotation.dart';

part 'person.g.dart';

@CopyWith()
@JsonSerializable()
class Person {
  final String firstName;
  final String lastName;
  final DateTime dateOfBirth;

  Person({
    this.firstName,
    this.lastName,
    this.dateOfBirth,
  });
}

Building creates the corresponding part person.g.dart:

part of 'person.dart';

extension $PersonCopyWith on Person {
  Person copyWith({
    String firstName,
    String lastName,
    DateTime dateOfBirth,
  }) {
    return Person(
        firstName: firstName ?? this.firstName,
        lastName: lastName ?? this.lastName,
        dateOfBirth: dateOfBirth ?? this.dateOfBirth,
    );
  }
}

Features and bugs #

Please file feature requests and bugs at the Github Issue Tracker.

Github Issue tracker: https://github.com/thenextappnl/copy_with/issues

Author #

This CopyWith package is developed by The Next App. You can contact us at info@thenextapp.nl

0
likes
20
pub points
5%
popularity

Publisher

verified publisherthenextapp.nl

This package generates a copyWith method using build_runner and json_serializable packages

Repository (GitHub)
View/report issues

License

unknown (license)

More

Packages that depend on copy_with_annotation