rbx_asset: fix up Luau Execution
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
@@ -330,7 +330,10 @@ impl RobloxOperation{
|
|||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
pub enum LuauSessionError{
|
pub enum LuauSessionError{
|
||||||
Get(GetError),
|
Get(GetError),
|
||||||
|
Unspecified,
|
||||||
NotDone,
|
NotDone,
|
||||||
|
NoOutput,
|
||||||
|
NoError,
|
||||||
}
|
}
|
||||||
impl std::fmt::Display for LuauSessionError{
|
impl std::fmt::Display for LuauSessionError{
|
||||||
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
||||||
@@ -359,20 +362,18 @@ pub enum LuauSessionState{
|
|||||||
STATE_UNSPECIFIED,
|
STATE_UNSPECIFIED,
|
||||||
PROCESSING,
|
PROCESSING,
|
||||||
COMPLETE,
|
COMPLETE,
|
||||||
ERROR,
|
FAILED,
|
||||||
}
|
}
|
||||||
#[derive(Debug,serde::Deserialize)]
|
#[derive(Debug,serde::Deserialize)]
|
||||||
#[expect(nonstandard_style)]
|
#[expect(nonstandard_style)]
|
||||||
pub struct LuauSessionResponse{
|
pub struct LuauSessionResponse{
|
||||||
path:String,
|
path:String,
|
||||||
pub createTime:chrono::DateTime<chrono::Utc>,
|
#[serde(deserialize_with="deserialize_u64")]
|
||||||
pub updateTime:chrono::DateTime<chrono::Utc>,
|
pub user:u64,
|
||||||
pub user:String,
|
|
||||||
pub state:LuauSessionState,
|
pub state:LuauSessionState,
|
||||||
pub script:String,
|
pub script:String,
|
||||||
pub timeout:String,
|
pub error:Option<String>,
|
||||||
pub error:String,
|
pub output:Option<String>,
|
||||||
pub output:String,
|
|
||||||
pub binaryInput:String,
|
pub binaryInput:String,
|
||||||
pub enableBinaryOutput:bool,
|
pub enableBinaryOutput:bool,
|
||||||
pub binaryOutputUri:String,
|
pub binaryOutputUri:String,
|
||||||
@@ -381,19 +382,13 @@ impl LuauSessionResponse{
|
|||||||
pub fn path(&self)->&str{
|
pub fn path(&self)->&str{
|
||||||
&self.path
|
&self.path
|
||||||
}
|
}
|
||||||
pub fn session_id(&self)->Option<&str>{
|
|
||||||
// universes/123/places/123/luau-execution-session-tasks/123e4567-e89b-12d3-a456-426655440000
|
|
||||||
self.path.rfind('/').map(|index|
|
|
||||||
self.path.split_at(index+1).1
|
|
||||||
)
|
|
||||||
}
|
|
||||||
pub async fn try_get_result(&self,context:&Context)->Result<Result<String,String>,LuauSessionError>{
|
pub async fn try_get_result(&self,context:&Context)->Result<Result<String,String>,LuauSessionError>{
|
||||||
let response=context.get_luau_session(self).await.map_err(LuauSessionError::Get)?;
|
let response=context.get_luau_session(self).await.map_err(LuauSessionError::Get)?;
|
||||||
match response.state{
|
match response.state{
|
||||||
LuauSessionState::STATE_UNSPECIFIED=>Err(LuauSessionError::NotDone),
|
LuauSessionState::STATE_UNSPECIFIED=>Err(LuauSessionError::Unspecified),
|
||||||
LuauSessionState::PROCESSING=>Err(LuauSessionError::NotDone),
|
LuauSessionState::PROCESSING=>Err(LuauSessionError::NotDone),
|
||||||
LuauSessionState::COMPLETE=>Ok(Ok(response.output)),
|
LuauSessionState::COMPLETE=>Ok(Ok(response.output.ok_or(LuauSessionError::NoOutput)?)),
|
||||||
LuauSessionState::ERROR=>Ok(Err(response.error)),
|
LuauSessionState::FAILED=>Ok(Err(response.error.ok_or(LuauSessionError::NoError)?)),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user