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)]
|
||||
pub enum LuauSessionError{
|
||||
Get(GetError),
|
||||
Unspecified,
|
||||
NotDone,
|
||||
NoOutput,
|
||||
NoError,
|
||||
}
|
||||
impl std::fmt::Display for LuauSessionError{
|
||||
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
||||
@@ -359,20 +362,18 @@ pub enum LuauSessionState{
|
||||
STATE_UNSPECIFIED,
|
||||
PROCESSING,
|
||||
COMPLETE,
|
||||
ERROR,
|
||||
FAILED,
|
||||
}
|
||||
#[derive(Debug,serde::Deserialize)]
|
||||
#[expect(nonstandard_style)]
|
||||
pub struct LuauSessionResponse{
|
||||
path:String,
|
||||
pub createTime:chrono::DateTime<chrono::Utc>,
|
||||
pub updateTime:chrono::DateTime<chrono::Utc>,
|
||||
pub user:String,
|
||||
#[serde(deserialize_with="deserialize_u64")]
|
||||
pub user:u64,
|
||||
pub state:LuauSessionState,
|
||||
pub script:String,
|
||||
pub timeout:String,
|
||||
pub error:String,
|
||||
pub output:String,
|
||||
pub error:Option<String>,
|
||||
pub output:Option<String>,
|
||||
pub binaryInput:String,
|
||||
pub enableBinaryOutput:bool,
|
||||
pub binaryOutputUri:String,
|
||||
@@ -381,19 +382,13 @@ impl LuauSessionResponse{
|
||||
pub fn path(&self)->&str{
|
||||
&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>{
|
||||
let response=context.get_luau_session(self).await.map_err(LuauSessionError::Get)?;
|
||||
match response.state{
|
||||
LuauSessionState::STATE_UNSPECIFIED=>Err(LuauSessionError::NotDone),
|
||||
LuauSessionState::STATE_UNSPECIFIED=>Err(LuauSessionError::Unspecified),
|
||||
LuauSessionState::PROCESSING=>Err(LuauSessionError::NotDone),
|
||||
LuauSessionState::COMPLETE=>Ok(Ok(response.output)),
|
||||
LuauSessionState::ERROR=>Ok(Err(response.error)),
|
||||
LuauSessionState::COMPLETE=>Ok(Ok(response.output.ok_or(LuauSessionError::NoOutput)?)),
|
||||
LuauSessionState::FAILED=>Ok(Err(response.error.ok_or(LuauSessionError::NoError)?)),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user