Skip to main content

CommitWorkflow

Struct CommitWorkflow 

Source
pub struct CommitWorkflow<J: JjExecutor, P: Prompter = RealPrompts> { /* private fields */ }
Expand description

Orchestrates the interactive commit workflow

This struct handles the complete user interaction flow:

  1. Check if we’re in a jj repository
  2. Select commit type from 11 options
  3. Optionally input scope (validated)
  4. Input required description (validated)
  5. Preview formatted message and confirm
  6. Apply the message to the current change

Uses dependency injection for prompts to enable testing without TUI.

Implementations§

Source§

impl<J: JjExecutor> CommitWorkflow<J>

Source

pub fn new(executor: J) -> Self

Create a new CommitWorkflow with the given executor

Uses RealPrompts by default for interactive TUI prompts.

Source§

impl<J: JjExecutor, P: Prompter> CommitWorkflow<J, P>

Source

pub fn with_prompts(executor: J, prompts: P) -> Self

Create a new CommitWorkflow with custom prompts

This allows using MockPrompts in tests to avoid TUI hanging.

Source

pub async fn run_for_revset(&self, revset: &str) -> Result<(), Error>

Run the complete interactive workflow

Returns Ok(()) on successful completion, or an error if:

  • Not in a jj repository
  • User cancels the workflow
  • Repository operation fails
  • Message validation fails
Source

pub async fn new_revision(&self, revset: &str) -> Result<(), Error>

Trait Implementations§

Source§

impl<J: Debug + JjExecutor, P: Debug + Prompter> Debug for CommitWorkflow<J, P>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<J, P> Freeze for CommitWorkflow<J, P>
where J: Freeze, P: Freeze,

§

impl<J, P> RefUnwindSafe for CommitWorkflow<J, P>

§

impl<J, P> Send for CommitWorkflow<J, P>
where P: Send,

§

impl<J, P> Sync for CommitWorkflow<J, P>
where P: Sync,

§

impl<J, P> Unpin for CommitWorkflow<J, P>
where J: Unpin, P: Unpin,

§

impl<J, P> UnsafeUnpin for CommitWorkflow<J, P>
where J: UnsafeUnpin, P: UnsafeUnpin,

§

impl<J, P> UnwindSafe for CommitWorkflow<J, P>
where J: UnwindSafe, P: UnwindSafe,

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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
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.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more