Documentation ¶
Index ¶
- Variables
- func EvaluateFinalFunctionalTrust(ctx FinalFunctionalTrustContext, of uint64, dft trust.DirectFunctionalTrust) opinion.Type
- func EvaluateFinalReferralTrustExpression(context FinalReferralTrustExpressionContext, ...) (*opinion.Type, error)
- type DefaultFinalReferralTrustEquationContext
- func (c *DefaultFinalReferralTrustEquationContext) GetDirectReferralTrust(link trust.Link) opinion.Type
- func (c *DefaultFinalReferralTrustEquationContext) GetDiscount(o opinion.Type) float64
- func (c *DefaultFinalReferralTrustEquationContext) GetFinalReferralTrust(link trust.Link) opinion.Type
- func (c *DefaultFinalReferralTrustEquationContext) SetFinalReferralTrust(link trust.Link, value *opinion.Type)
- type FinalFunctionalTrustContext
- type FinalReferralTrustEquation
- type FinalReferralTrustEquationContext
- type FinalReferralTrustEquationIterator
- type FinalReferralTrustEquations
- type FinalReferralTrustExpression
- type FinalReferralTrustExpressionContext
- type FinalReferralTrustExpressionVisitor
- type IterableFinalReferralTrustEquations
- type NextFinalReferralTrustEquationHandler
Constants ¶
This section is empty.
Variables ¶
var ( // ErrInvalidExpression is returned when expression is invalid and cannot be evaluated ErrInvalidExpression = errors.New("trust: invalid expression") )
Functions ¶
func EvaluateFinalFunctionalTrust ¶
func EvaluateFinalFunctionalTrust(ctx FinalFunctionalTrustContext, of uint64, dft trust.DirectFunctionalTrust) opinion.Type
func EvaluateFinalReferralTrustExpression ¶
func EvaluateFinalReferralTrustExpression(context FinalReferralTrustExpressionContext, expression FinalReferralTrustExpression) (*opinion.Type, error)
EvaluateFinalReferralTrustExpression evaluates expression using expression context and returns evaluated value or error
Types ¶
type DefaultFinalReferralTrustEquationContext ¶
type DefaultFinalReferralTrustEquationContext struct { DirectReferralTrust trust.DirectReferralOpinion FinalReferralTrust trust.FinalReferralOpinion }
func NewDefaultFinalReferralTrustEquationContext ¶
func NewDefaultFinalReferralTrustEquationContext(a trust.DirectReferralOpinion) *DefaultFinalReferralTrustEquationContext
func (*DefaultFinalReferralTrustEquationContext) GetDirectReferralTrust ¶
func (c *DefaultFinalReferralTrustEquationContext) GetDirectReferralTrust(link trust.Link) opinion.Type
func (*DefaultFinalReferralTrustEquationContext) GetDiscount ¶
func (c *DefaultFinalReferralTrustEquationContext) GetDiscount(o opinion.Type) float64
func (*DefaultFinalReferralTrustEquationContext) GetFinalReferralTrust ¶
func (c *DefaultFinalReferralTrustEquationContext) GetFinalReferralTrust(link trust.Link) opinion.Type
func (*DefaultFinalReferralTrustEquationContext) SetFinalReferralTrust ¶
func (c *DefaultFinalReferralTrustEquationContext) SetFinalReferralTrust(link trust.Link, value *opinion.Type)
type FinalFunctionalTrustContext ¶
type FinalFunctionalTrustContext interface { GetFinalReferralTrust(link trust.Link) opinion.Type GetDiscount(opinion.Type) float64 }
FinalFunctionalTrustContext is a context to evaluate final functional trust
type FinalReferralTrustEquation ¶
type FinalReferralTrustEquation struct { // R represents R[i, j] - i's (possibly indirect) opinion about the trustworthiness of j R trust.Link // FinalReferralTrustExpression of R[i, j] Expression FinalReferralTrustExpression }
FinalReferralTrustEquation represents final referral trust equation: R[i, j] = FinalReferralTrustExpression
func (*FinalReferralTrustEquation) EvaluateFinalReferralTrust ¶
func (e *FinalReferralTrustEquation) EvaluateFinalReferralTrust(context FinalReferralTrustEquationContext) (res *opinion.Type, err error)
EvaluateFinalReferralTrust evaluates new final referral value from equation expression and updates final referral trust with the new value.
type FinalReferralTrustEquationContext ¶
type FinalReferralTrustEquationContext interface { FinalReferralTrustExpressionContext // SetFinalReferralTrust used to update evaluated expression value SetFinalReferralTrust(link trust.Link, value *opinion.Type) }
FinalReferralTrustEquationContext to evaluate final referral trust equation
type FinalReferralTrustEquationIterator ¶
type FinalReferralTrustEquationIterator func(NextFinalReferralTrustEquationHandler) error
FinalReferralTrustEquationIterator used as `foreach` to handle all final referral trust equations
type FinalReferralTrustEquations ¶
type FinalReferralTrustEquations []*FinalReferralTrustEquation
FinalReferralTrustEquations is a set of final referral trust equation
func (FinalReferralTrustEquations) GetFinalReferralTrustEquationIterator ¶
func (eqs FinalReferralTrustEquations) GetFinalReferralTrustEquationIterator() FinalReferralTrustEquationIterator
GetFinalReferralTrustEquationIterator implements IterableFinalReferralTrustEquations interface
type FinalReferralTrustExpression ¶
type FinalReferralTrustExpression interface { IsFullUncertainty() bool IsDiscountingRule() bool IsDirectReferralTrust() bool IsConsensusList() bool Accept(v FinalReferralTrustExpressionVisitor) error }
FinalReferralTrustExpression represents final referral trust expression
type FinalReferralTrustExpressionContext ¶
type FinalReferralTrustExpressionContext interface { FinalFunctionalTrustContext GetDirectReferralTrust(link trust.Link) opinion.Type }
FinalReferralTrustExpressionContext to evaluate expression of final referral trust equation
type FinalReferralTrustExpressionVisitor ¶
type FinalReferralTrustExpressionVisitor interface { VisitFullUncertainty() error VisitDiscountingRule(r trust.Link, a trust.Link) error VisitDirectReferralTrust(a trust.Link) error VisitConsensusListStart(count int) error VisitConsensusList(index int, equation FinalReferralTrustExpression) error VisitConsensusListEnd() error }
FinalReferralTrustExpressionVisitor is a visitor for FinalReferralTrustExpression
type IterableFinalReferralTrustEquations ¶
type IterableFinalReferralTrustEquations interface {
GetFinalReferralTrustEquationIterator() FinalReferralTrustEquationIterator
}
IterableFinalReferralTrustEquations allows to iterate over all final referral trust equations
func CreateFinalReferralTrustEquations ¶
func CreateFinalReferralTrustEquations(links trust.IterableLinks) IterableFinalReferralTrustEquations
CreateFinalReferralTrustEquations creates equations for the final referral trust
type NextFinalReferralTrustEquationHandler ¶
type NextFinalReferralTrustEquationHandler func(*FinalReferralTrustEquation) error
NextFinalReferralTrustEquationHandler handles next inal referral trust equation and returns error