refusaltext

package
v0.2.0 Latest Latest
Warning

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

Go to latest
Published: Sep 13, 2026 License: AGPL-3.0 Imports: 7 Imported by: 0

Documentation

Overview

Package refusaltext — ОДНА проба для всех переводчиков отказа службы: текст, который получает вызывающий на признаке недоступности, ФИКСИРОВАН и причины не несёт.

Почему помощник, а не копия утверждения у каждого переводчика

Переводчиков в службе несколько, и предмет у них ОДИН. Копия утверждения в каждом пакете разошлась бы с остальными на первом же уточнении — ровно тем способом, каким разошлись сами переводчики (задача #2464): канонический был переведён на фиксированный текст, а копии остались, и расхождение никем не решалось. Утверждение живёт в одном месте; вызывающий приносит только свой переводчик и своего законного близнеца.

Проба утверждает СООБЩЕНИЕ, а не код

Проба, сверяющая лишь код ответа, остаётся зелёной при вернувшемся эхе: код `UNAVAILABLE` верен в обоих случаях. Именно такая проба и стояла у канонического соседа, поэтому расхождение прожило незамеченным.

Index

Constants

View Source
const CauseMarker = "PROBE-CAUSE-MARKER-MUST-NOT-REACH-THE-WIRE"

CauseMarker — синтетическая подробность цепочки: то, что переводчик обязан оставить журналу и НИКОГДА не отдать вызывающему.

Значение намеренно НЕПРАВДОПОДОБНО. Правдоподобная строка (адрес узла, имя базы) прошла бы за настоящую и в отказе пробы читалась бы как утечка свидетельства, а не как её проверка; кроме того, обе рабочие копии этого дерева публичны.

Variables

This section is empty.

Functions

This section is empty.

Types

type Probe

type Probe struct {
	// Translate — перевод отказа в gRPC-статус: то, что вызывающий увидит.
	Translate func(error) error

	// Positive / PositiveCode / PositiveMessage — отказ, чей текст ОБЯЗАН
	// доехать дословно. Без него отрицание вакуумно: переводчик, отвечающий
	// фиксированным текстом НА ВСЁ, прошёл бы каждое утверждение ниже и при
	// этом перестал бы говорить вызывающему хоть что-нибудь.
	Positive        error
	PositiveCode    codes.Code
	PositiveMessage string
}

Probe — переводчик под пробой и его ЗАКОННЫЙ БЛИЗНЕЦ.

func (Probe) Run

func (p Probe) Run(t *testing.T)

Run — прогоняет утверждение на переданном переводчике.

Jump to

Keyboard shortcuts

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