use crate::handles::session::unexpected_response;
use crate::handles::split::SplitDirection;
use crate::transport::TransportClient;
use crate::{PaneRef, Result};
use rmux_proto::{Request, Response, SplitWindowExtRequest, SplitWindowTarget};
pub(super) async fn split_pane(
client: &TransportClient,
target: &PaneRef,
direction: SplitDirection,
) -> Result<PaneRef> {
match client
.request(Request::SplitWindowExt(SplitWindowExtRequest {
target: SplitWindowTarget::Pane(target.into()),
direction: direction.axis(),
before: direction.before(),
environment: None,
command: None,
}))
.await?
{
Response::SplitWindow(response) => Ok(response.pane.into()),
response => Err(unexpected_response("split-window", response)),
}
}