pub struct Server<'lua> { /* private fields */ }
Expand description
The “Server” class provides a way for manipulating servers and retrieving information.
Implementations§
Source§impl<'lua> Server<'lua>
impl<'lua> Server<'lua>
Sourcepub fn is_draining(&self) -> Result<bool>
pub fn is_draining(&self) -> Result<bool>
Returns true if the server is currently draining sticky connections.
Sourcepub fn is_dynamic(&self) -> Result<bool>
pub fn is_dynamic(&self) -> Result<bool>
Return true if the server was instantiated at runtime (e.g.: from the cli).
Sourcepub fn get_cur_sess(&self) -> Result<u64>
pub fn get_cur_sess(&self) -> Result<u64>
Return the number of currently active sessions on the server.
Sourcepub fn get_pend_conn(&self) -> Result<u64>
pub fn get_pend_conn(&self) -> Result<u64>
Return the number of pending connections to the server.
Sourcepub fn set_maxconn(&self, maxconn: u64) -> Result<()>
pub fn set_maxconn(&self, maxconn: u64) -> Result<()>
Dynamically changes the maximum connections of the server.
Sourcepub fn get_maxconn(&self) -> Result<u64>
pub fn get_maxconn(&self) -> Result<u64>
Returns an integer representing the server maximum connections.
Sourcepub fn set_weight(&self, weight: &str) -> Result<()>
pub fn set_weight(&self, weight: &str) -> Result<()>
Dynamically changes the weight of the server. See the management socket documentation for more information about the format of the string.
Sourcepub fn get_weight(&self) -> Result<u32>
pub fn get_weight(&self) -> Result<u32>
Returns an integer representing the server weight.
Sourcepub fn set_addr(&self, addr: String, port: Option<u16>) -> Result<()>
pub fn set_addr(&self, addr: String, port: Option<u16>) -> Result<()>
Dynamically changes the address of the server.
Sourcepub fn get_addr(&self) -> Result<String>
pub fn get_addr(&self) -> Result<String>
Returns a string describing the address of the server.
Sourcepub fn get_stats(&self) -> Result<Table<'lua>>
pub fn get_stats(&self) -> Result<Table<'lua>>
Returns a table containing the server statistics.
Sourcepub fn get_proxy(&self) -> Result<Proxy<'lua>>
pub fn get_proxy(&self) -> Result<Proxy<'lua>>
Returns the parent proxy to which the server belongs.
Sourcepub fn check_enable(&self) -> Result<()>
pub fn check_enable(&self) -> Result<()>
Enables health checks.
Sourcepub fn check_disable(&self) -> Result<()>
pub fn check_disable(&self) -> Result<()>
Disables health checks.
Sourcepub fn check_force_up(&self) -> Result<()>
pub fn check_force_up(&self) -> Result<()>
Forces health-check up.
Sourcepub fn check_force_nolb(&self) -> Result<()>
pub fn check_force_nolb(&self) -> Result<()>
Forces health-check nolb mode.
Sourcepub fn check_force_down(&self) -> Result<()>
pub fn check_force_down(&self) -> Result<()>
Forces health-check down.
Sourcepub fn agent_enable(&self) -> Result<()>
pub fn agent_enable(&self) -> Result<()>
Enables agent check.
Sourcepub fn agent_disable(&self) -> Result<()>
pub fn agent_disable(&self) -> Result<()>
Disables agent check.
Sourcepub fn agent_force_up(&self) -> Result<()>
pub fn agent_force_up(&self) -> Result<()>
Forces agent check up.
Sourcepub fn agent_force_down(&self) -> Result<()>
pub fn agent_force_down(&self) -> Result<()>
Forces agent check down.
Sourcepub fn tracking(&self) -> Result<Option<Server<'lua>>>
pub fn tracking(&self) -> Result<Option<Server<'lua>>>
Check if the current server is tracking another server.
Sourcepub fn get_trackers(&self) -> Result<Vec<Server<'lua>>>
pub fn get_trackers(&self) -> Result<Vec<Server<'lua>>>
Check if the current server is being tracked by other servers.
Sourcepub fn event_sub<'a, S>(&self, event_types: &[&str], code: S) -> Result<()>where
S: AsChunk<'lua, 'a>,
pub fn event_sub<'a, S>(&self, event_types: &[&str], code: S) -> Result<()>where
S: AsChunk<'lua, 'a>,
Register a function that will be called on specific server events.
It works exactly like `core.event_sub()`` except that the subscription will be performed within the server dedicated subscription list instead of the global one.
Methods from Deref<Target = Table<'lua>>§
Sourcepub fn set<K, V>(&self, key: K, value: V) -> Result<(), Error>
pub fn set<K, V>(&self, key: K, value: V) -> Result<(), Error>
Sets a key-value pair in the table.
If the value is nil
, this will effectively remove the pair.
This might invoke the __newindex
metamethod. Use the raw_set
method if that is not
desired.
§Examples
Export a value as a global to make it usable from Lua:
let globals = lua.globals();
globals.set("assertions", cfg!(debug_assertions))?;
lua.load(r#"
if assertions == true then
-- ...
elseif assertions == false then
-- ...
else
error("assertions neither on nor off?")
end
"#).exec()?;
Sourcepub fn get<K, V>(&self, key: K) -> Result<V, Error>
pub fn get<K, V>(&self, key: K) -> Result<V, Error>
Gets the value associated to key
from the table.
If no value is associated to key
, returns the nil
value.
This might invoke the __index
metamethod. Use the raw_get
method if that is not
desired.
§Examples
Query the version of the Lua interpreter:
let globals = lua.globals();
let version: String = globals.get("_VERSION")?;
println!("Lua version: {}", version);
Sourcepub fn contains_key<K>(&self, key: K) -> Result<bool, Error>where
K: IntoLua<'lua>,
pub fn contains_key<K>(&self, key: K) -> Result<bool, Error>where
K: IntoLua<'lua>,
Checks whether the table contains a non-nil value for key
.
This might invoke the __index
metamethod.
Sourcepub fn push<V>(&self, value: V) -> Result<(), Error>where
V: IntoLua<'lua>,
pub fn push<V>(&self, value: V) -> Result<(), Error>where
V: IntoLua<'lua>,
Appends a value to the back of the table.
This might invoke the __len
and __newindex
metamethods.
Sourcepub fn pop<V>(&self) -> Result<V, Error>where
V: FromLua<'lua>,
pub fn pop<V>(&self) -> Result<V, Error>where
V: FromLua<'lua>,
Removes the last element from the table and returns it.
This might invoke the __len
and __newindex
metamethods.
Sourcepub fn equals<T>(&self, other: T) -> Result<bool, Error>
pub fn equals<T>(&self, other: T) -> Result<bool, Error>
Compares two tables for equality.
Tables are compared by reference first.
If they are not primitively equals, then mlua will try to invoke the __eq
metamethod.
mlua will check self
first for the metamethod, then other
if not found.
§Examples
Compare two tables using __eq
metamethod:
let table1 = lua.create_table()?;
table1.set(1, "value")?;
let table2 = lua.create_table()?;
table2.set(2, "value")?;
let always_equals_mt = lua.create_table()?;
always_equals_mt.set("__eq", lua.create_function(|_, (_t1, _t2): (Table, Table)| Ok(true))?)?;
table2.set_metatable(Some(always_equals_mt));
assert!(table1.equals(&table1.clone())?);
assert!(table1.equals(&table2)?);
Sourcepub fn raw_set<K, V>(&self, key: K, value: V) -> Result<(), Error>
pub fn raw_set<K, V>(&self, key: K, value: V) -> Result<(), Error>
Sets a key-value pair without invoking metamethods.
Sourcepub fn raw_get<K, V>(&self, key: K) -> Result<V, Error>
pub fn raw_get<K, V>(&self, key: K) -> Result<V, Error>
Gets the value associated to key
without invoking metamethods.
Sourcepub fn raw_insert<V>(&self, idx: i64, value: V) -> Result<(), Error>where
V: IntoLua<'lua>,
pub fn raw_insert<V>(&self, idx: i64, value: V) -> Result<(), Error>where
V: IntoLua<'lua>,
Inserts element value at position idx
to the table, shifting up the elements from table[idx]
.
The worst case complexity is O(n), where n is the table length.
Sourcepub fn raw_push<V>(&self, value: V) -> Result<(), Error>where
V: IntoLua<'lua>,
pub fn raw_push<V>(&self, value: V) -> Result<(), Error>where
V: IntoLua<'lua>,
Appends a value to the back of the table without invoking metamethods.
Sourcepub fn raw_pop<V>(&self) -> Result<V, Error>where
V: FromLua<'lua>,
pub fn raw_pop<V>(&self) -> Result<V, Error>where
V: FromLua<'lua>,
Removes the last element from the table and returns it, without invoking metamethods.
Sourcepub fn raw_remove<K>(&self, key: K) -> Result<(), Error>where
K: IntoLua<'lua>,
pub fn raw_remove<K>(&self, key: K) -> Result<(), Error>where
K: IntoLua<'lua>,
Removes a key from the table.
If key
is an integer, mlua shifts down the elements from table[key+1]
,
and erases element table[key]
. The complexity is O(n) in the worst case,
where n is the table length.
For other key types this is equivalent to setting table[key] = nil
.
Sourcepub fn clear(&self) -> Result<(), Error>
pub fn clear(&self) -> Result<(), Error>
Clears the table, removing all keys and values from array and hash parts, without invoking metamethods.
This method is useful to clear the table while keeping its capacity.
Sourcepub fn len(&self) -> Result<i64, Error>
pub fn len(&self) -> Result<i64, Error>
Returns the result of the Lua #
operator.
This might invoke the __len
metamethod. Use the raw_len
method if that is not desired.
Sourcepub fn raw_len(&self) -> usize
pub fn raw_len(&self) -> usize
Returns the result of the Lua #
operator, without invoking the __len
metamethod.
Sourcepub fn is_empty(&self) -> bool
pub fn is_empty(&self) -> bool
Returns true
if the table is empty, without invoking metamethods.
It checks both the array part and the hash part.
Sourcepub fn get_metatable(&self) -> Option<Table<'lua>>
pub fn get_metatable(&self) -> Option<Table<'lua>>
Returns a reference to the metatable of this table, or None
if no metatable is set.
Unlike the getmetatable
Lua function, this method ignores the __metatable
field.
Sourcepub fn set_metatable(&self, metatable: Option<Table<'lua>>)
pub fn set_metatable(&self, metatable: Option<Table<'lua>>)
Sets or removes the metatable of this table.
If metatable
is None
, the metatable is removed (if no metatable is set, this does
nothing).
Sourcepub fn to_pointer(&self) -> *const c_void
pub fn to_pointer(&self) -> *const c_void
Converts this table to a generic C pointer.
Different tables will give different pointers. There is no way to convert the pointer back to its original value.
Typically this function is used only for hashing and debug information.