breaker-cli

command module
v0.0.0-...-6aa5243 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 14, 2024 License: MIT Imports: 15 Imported by: 0

README

breaker-cli

What is breaker-cli?

breaker-cli is a CLI tool to generate a breaker implementation for a given interface.

Why breaker-cli?

To save time and effort in writing boilerplate code for a breaker implementation.

How to use breaker-cli?

Installation
go install github.com/chenyanchen/breaker/cmd/breaker-cli@latest
Usage
breaker-cli -h
Usage of breaker-cli:
  -interface string
        The interface name
  -output string
        The output file name, default to stdout
  -package string
        The packages named by the import paths

example:

interface:

type Filter interface {
	Filter(ctx context.Context, elements []string) ([]string, error)
}

command:

breaker-cli -package=github.com/chenyanchen/filter -interface=Filter -output=path/to/filterbreaker.go

generated file:

// Code generated by breaker-cli. DO NOT EDIT.
// breaker-cli: https://github.com/chenyanchen/breaker/tree/main/cmd/breaker-cli

package cmd

import (
	"context"

	"github.com/chenyanchen/breaker"
	"github.com/chenyanchen/filter"
)

type FilterBreaker struct {
	source  filter.Filter
	breaker breaker.Breaker
}

func NewFilterBreaker(source filter.Filter) *FilterBreaker {
	return &FilterBreaker{
		source:  source,    
		breaker: breaker.NewGoogleBreaker(),
	}
}

func (b *FilterBreaker) Filter(ctx context.Context, elements []string) ([]string, error) {
	var (
		result0 []string
		result1 error
	)
	result1 = b.breaker.Do(func() error {
		result0, result1 = b.source.Filter(ctx, elements)
		return result1
	})
	return result0, result1
}

Documentation

The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL