memo

package
v0.0.0-...-ec09f47 Latest Latest
Warning

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

Go to latest
Published: May 21, 2020 License: MIT Imports: 6 Imported by: 0

Documentation

Overview

Package memo provides a concurrency-unsafe memorization of a function of type Func.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Concurrent

func Concurrent()

Types

type Func

type Func func(key string) (interface{}, error)

Func is the type of the function to memoize

type Memo

type Memo struct {
	// contains filtered or unexported fields
}

A Memo caches the results of calling a Func.

func New

func New(f Func) *Memo

func (*Memo) Get

func (memo *Memo) Get(key string) (interface{}, error)

Get is concurrency safe and performance improves compared to memo2 where the whole function is the critical section. Unfortunately now sometimes there are some URLS fetched twice. We have redundant work. We need duplicate suppression.

Jump to

Keyboard shortcuts

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