mirror of
https://github.com/ent/ent.git
synced 2026-04-28 05:30:56 +03:00
25 lines
990 B
Go
25 lines
990 B
Go
// Copyright 2019-present Facebook Inc. All rights reserved.
|
|
// This source code is licensed under the Apache 2.0 license found
|
|
// in the LICENSE file in the root directory of this source tree.
|
|
|
|
package schema
|
|
|
|
// Annotation is used to attach arbitrary metadata to the schema objects in codegen.
|
|
// The object must be serializable to JSON raw value (e.g. struct, map or slice).
|
|
//
|
|
// Template extensions can retrieve this metadata and use it inside their templates.
|
|
// Read more about it in ent website: https://entgo.io/docs/templates/#annotations.
|
|
type Annotation interface {
|
|
// Name defines the name of the annotation to be retrieved by the codegen.
|
|
Name() string
|
|
}
|
|
|
|
// Merger wraps the single Merge function allows custom annotation to provide
|
|
// an implementation for merging 2 or more annotations from the same type.
|
|
//
|
|
// A common use case is where the same Annotation type is defined both in
|
|
// mixin.Schema and ent.Schema.
|
|
type Merger interface {
|
|
Merge(Annotation) Annotation
|
|
}
|