mirror of
https://github.com/fleetdm/fleet
synced 2026-05-06 06:48:54 +00:00
For #26219 Refactoring the interface between Android service and Android datastore to use 1 common datastore interface: `fleet.AndroidDatastore` These changes are based on feedback from the recent Backend Sync. ```mermaid --- title: Partial class diagram --- classDiagram direction LR class `android.Service` <<interface>> `android.Service` class `android/service.Service` `android/service.Service` ..|> `android.Service`: implements class `fleet.AndroidDatastore` <<interface>> `fleet.AndroidDatastore` class `fleet.Datastore` <<interface>> `fleet.Datastore` class `android.Datastore` <<interface>> `android.Datastore` `android/service.Service` *-- `fleet.AndroidDatastore`: USES (THIS IS THE KEY CHANGE) `fleet.Datastore` *-- `fleet.AndroidDatastore`: contains `mysql.Datastore` ..|> `fleet.Datastore`: implements `fleet.AndroidDatastore` *-- `android.Datastore`: contains `mysql.Datastore` *-- `android.Datastore`: contains `android/mysql.Datastore` ..|> `android.Datastore`: implements ``` |
||
|---|---|---|
| .. | ||
| impl.go | ||
| impl_test.go | ||
| LICENSE.txt | ||
| README.md | ||
mockimpl
The contents of this directory were copied (on December 2023) from https://github.com/fleetdm/mockimpl which was forked from https://github.com/groob/mockimpl.
mockimpl generates mock method stubs for implementing an interface.
mockimpl is based on impl
go get -u github.com/groob/mockimpl
Sample usage:
$ impl 'f *File' io.ReadWriteCloser
// Automatically generated by mockimpl. DO NOT EDIT!
package mock
import "io"
var _ io.ReadWriteCloser = (*File)(nil)
type ReadFunc func(p []byte) (n int, err error)
type WriteFunc func(p []byte) (n int, err error)
type CloseFunc func() error
type File struct {
ReadFunc ReadFunc
ReadFuncInvoked bool
WriteFunc WriteFunc
WriteFuncInvoked bool
CloseFunc CloseFunc
CloseFuncInvoked bool
}
func (f *File) Read(p []byte) (n int, err error) {
f.ReadFuncInvoked = true
return f.ReadFunc(p)
}
func (f *File) Write(p []byte) (n int, err error) {
f.WriteFuncInvoked = true
return f.WriteFunc(p)
}
func (f *File) Close() error {
f.CloseFuncInvoked = true
return f.CloseFunc()
}
# You can also provide a full name by specifying the package path.
# This helps in cases where the interface can't be guessed
# just from the package name and interface name.
$ impl 's *Source' golang.org/x/oauth2.TokenSource
func (s *Source) Token() (*oauth2.Token, error) {
panic("not implemented")
}
You can use impl from Vim with vim-go-impl