Skip to main content

TextSpeculator

Struct TextSpeculator 

Source
pub struct TextSpeculator { /* private fields */ }
Expand description

The original speculator: one file’s content, merged 3-way.

Every state is a full file body, and base/onto/proposed are the three sides of choir_merge::Pipeline::merge. The safety check that policed strategies stays here, because it is a statement about lines and has no meaning for an implementation whose states are not text.

Implementations§

Source§

impl TextSpeculator

Source

pub fn new(pipeline: Pipeline) -> Self

A speculator over the given strategy pipeline — the D4/D19 widening seam, with structured or LLM slots appended by the caller. Every resolution is still safety-checked here, which is what makes the non-deterministic slots admissible at all.

Trait Implementations§

Source§

impl Default for TextSpeculator

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl Speculator for TextSpeculator

Source§

fn name(&self) -> &'static str

Stable identifier, for reports and errors.
Source§

fn step(&mut self, base: &str, onto: &str, proposed: &str) -> Step

Merges proposed — authored against base — onto onto. Read more
Source§

fn identity(&self, change: &Change) -> String

A position-independent identity for change. Read more
Source§

fn subject(&self, state: &str) -> ContentHash

The content hash naming state. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.