Add dynamic completion for users and databases
All checks were successful
Build and test / check (push) Successful in 1m35s
Build and test / build (push) Successful in 2m46s
Build and test / test (push) Successful in 3m10s
Build and test / check-license (push) Successful in 6m12s
Build and test / docs (push) Successful in 4m39s

This commit is contained in:
2025-12-01 17:26:17 +09:00
parent cb3f3f3e1d
commit f348e67622
26 changed files with 383 additions and 17 deletions

View File

@@ -1,4 +1,6 @@
mod check_authorization;
mod complete_database_name;
mod complete_user_name;
mod create_databases;
mod create_users;
mod drop_databases;
@@ -15,6 +17,8 @@ mod passwd_user;
mod unlock_users;
pub use check_authorization::*;
pub use complete_database_name::*;
pub use complete_user_name::*;
pub use create_databases::*;
pub use create_users::*;
pub use drop_databases::*;
@@ -64,6 +68,9 @@ pub fn create_client_to_server_message_stream(socket: UnixStream) -> ClientToSer
pub enum Request {
CheckAuthorization(CheckAuthorizationRequest),
CompleteDatabaseName(CompleteDatabaseNameRequest),
CompleteUserName(CompleteUserNameRequest),
CreateDatabases(CreateDatabasesRequest),
DropDatabases(DropDatabasesRequest),
ListDatabases(ListDatabasesRequest),
@@ -88,6 +95,9 @@ pub enum Request {
pub enum Response {
CheckAuthorization(CheckAuthorizationResponse),
CompleteDatabaseName(CompleteDatabaseNameResponse),
CompleteUserName(CompleteUserNameResponse),
// Specific data for specific commands
CreateDatabases(CreateDatabasesResponse),
DropDatabases(DropDatabasesResponse),

View File

@@ -0,0 +1,5 @@
use crate::core::types::MySQLDatabase;
pub type CompleteDatabaseNameRequest = String;
pub type CompleteDatabaseNameResponse = Vec<MySQLDatabase>;

View File

@@ -0,0 +1,5 @@
use crate::core::types::MySQLUser;
pub type CompleteUserNameRequest = String;
pub type CompleteUserNameResponse = Vec<MySQLUser>;