pub struct GKDecisionTree { /* private fields */ }GKDecisionTree only.Expand description
Implementations§
Source§impl GKDecisionTree
impl GKDecisionTree
Sourcepub unsafe fn rootNode(&self) -> Option<Retained<GKDecisionNode>>
pub unsafe fn rootNode(&self) -> Option<Retained<GKDecisionNode>>
The node for the decision tree that all other nodes descend from
Sourcepub unsafe fn randomSource(&self) -> Retained<GKRandomSource>
Available on crate feature GKRandomSource only.
pub unsafe fn randomSource(&self) -> Retained<GKRandomSource>
GKRandomSource only.The random source used by the decision tree when descending on a random branch This must be set before creating any weighted branches
See: GKDecisionNode
Sourcepub unsafe fn setRandomSource(&self, random_source: &GKRandomSource)
Available on crate feature GKRandomSource only.
pub unsafe fn setRandomSource(&self, random_source: &GKRandomSource)
GKRandomSource only.Setter for randomSource.
This is copied when set.
Sourcepub unsafe fn initWithAttribute(
this: Allocated<Self>,
attribute: &ProtocolObject<dyn NSObjectProtocol>,
) -> Retained<Self>
pub unsafe fn initWithAttribute( this: Allocated<Self>, attribute: &ProtocolObject<dyn NSObjectProtocol>, ) -> Retained<Self>
Initializes the decision tree with a root node containing the provided attribute
Parameter attribute: The attribute to be contained at the root of the tree
Returns: GKDecisionTree with the set root
§Safety
attribute should be of the correct type.
Sourcepub unsafe fn initWithExamples_actions_attributes(
this: Allocated<Self>,
examples: &NSArray<NSArray<ProtocolObject<dyn NSObjectProtocol>>>,
actions: &NSArray<ProtocolObject<dyn NSObjectProtocol>>,
attributes: &NSArray<ProtocolObject<dyn NSObjectProtocol>>,
) -> Retained<Self>
pub unsafe fn initWithExamples_actions_attributes( this: Allocated<Self>, examples: &NSArray<NSArray<ProtocolObject<dyn NSObjectProtocol>>>, actions: &NSArray<ProtocolObject<dyn NSObjectProtocol>>, attributes: &NSArray<ProtocolObject<dyn NSObjectProtocol>>, ) -> Retained<Self>
Initializes and constructs a decision tree by learning from the provided examples & attributes
Parameter examples: Must be an array of examples (with each example being a collection of the various attributes at a given state)
Parameter actions: An array of the corresponding actions for each example. Ordered such that the first action matches with the first example in examples.
Parameter attributes: The list of attributes. Ordered such that the first attribute matches with the first result in each example.
So if we have two attributes: [distance, jump height], and two examples: [[20, 8], [15, 14]], and the resulting actions here: [Roll, Jump], we can think of this as a matrix:
distance| height <
- Attributes | | | | | 20 | 8 | jump |—––|—––|—–– <
- Results | 15 | 14 | roll ||| ^ | Examples
Returns: GKDecisionTree created by learning from the provided examples for the provided attributes
§Safety
examplesgeneric generic should be of the correct type.actionsgeneric should be of the correct type.attributesgeneric should be of the correct type.
Sourcepub unsafe fn initWithURL_error(
this: Allocated<Self>,
url: &NSURL,
error: Option<&NSError>,
) -> Retained<Self>
pub unsafe fn initWithURL_error( this: Allocated<Self>, url: &NSURL, error: Option<&NSError>, ) -> Retained<Self>
Initializes a decision tree from the contents of a file
Parameter url: The URL from which the contents will be loaded
Returns: The instance of the decision tree constructed
Sourcepub unsafe fn exportToURL_error(
&self,
url: &NSURL,
error: Option<&NSError>,
) -> bool
pub unsafe fn exportToURL_error( &self, url: &NSURL, error: Option<&NSError>, ) -> bool
Exports a decision tree to the given URL
Parameter url: The URL to which the contents will be exported
Returns: The response indicating the status of the decision tree being successfully exported
Sourcepub unsafe fn findActionForAnswers(
&self,
answers: &NSDictionary<ProtocolObject<dyn NSObjectProtocol>, ProtocolObject<dyn NSObjectProtocol>>,
) -> Option<Retained<ProtocolObject<dyn NSObjectProtocol>>>
pub unsafe fn findActionForAnswers( &self, answers: &NSDictionary<ProtocolObject<dyn NSObjectProtocol>, ProtocolObject<dyn NSObjectProtocol>>, ) -> Option<Retained<ProtocolObject<dyn NSObjectProtocol>>>
Will branch down from the root node to find the correct action attribute for the given collection of results and their respective attributes
Parameter answers: The dictionary of attributes (keys) and their answers (values)
Returns: The attribute found by traversing the tree given the provided answers
§Safety
answersgeneric should be of the correct type.answersgeneric should be of the correct type.
Methods from Deref<Target = NSObject>§
Sourcepub fn doesNotRecognizeSelector(&self, sel: Sel) -> !
pub fn doesNotRecognizeSelector(&self, sel: Sel) -> !
Handle messages the object doesn’t recognize.
See Apple’s documentation for details.
Methods from Deref<Target = AnyObject>§
Sourcepub fn class(&self) -> &'static AnyClass
pub fn class(&self) -> &'static AnyClass
Dynamically find the class of this object.
§Panics
May panic if the object is invalid (which may be the case for objects
returned from unavailable init/new methods).
§Example
Check that an instance of NSObject has the precise class NSObject.
use objc2::ClassType;
use objc2::runtime::NSObject;
let obj = NSObject::new();
assert_eq!(obj.class(), NSObject::class());Sourcepub unsafe fn get_ivar<T>(&self, name: &str) -> &Twhere
T: Encode,
👎Deprecated: this is difficult to use correctly, use Ivar::load instead.
pub unsafe fn get_ivar<T>(&self, name: &str) -> &Twhere
T: Encode,
Ivar::load instead.Use Ivar::load instead.
§Safety
The object must have an instance variable with the given name, and it
must be of type T.
See Ivar::load_ptr for details surrounding this.
Sourcepub fn downcast_ref<T>(&self) -> Option<&T>where
T: DowncastTarget,
pub fn downcast_ref<T>(&self) -> Option<&T>where
T: DowncastTarget,
Attempt to downcast the object to a class of type T.
This is the reference-variant. Use Retained::downcast if you want
to convert a retained object to another type.
§Mutable classes
Some classes have immutable and mutable variants, such as NSString
and NSMutableString.
When some Objective-C API signature says it gives you an immutable class, it generally expects you to not mutate that, even though it may technically be mutable “under the hood”.
So using this method to convert a NSString to a NSMutableString,
while not unsound, is generally frowned upon unless you created the
string yourself, or the API explicitly documents the string to be
mutable.
See Apple’s documentation on mutability and on
isKindOfClass: for more details.
§Generic classes
Objective-C generics are called “lightweight generics”, and that’s because they aren’t exposed in the runtime. This makes it impossible to safely downcast to generic collections, so this is disallowed by this method.
You can, however, safely downcast to generic collections where all the
type-parameters are AnyObject.
§Panics
This works internally by calling isKindOfClass:. That means that the
object must have the instance method of that name, and an exception
will be thrown (if CoreFoundation is linked) or the process will abort
if that is not the case. In the vast majority of cases, you don’t need
to worry about this, since both root objects NSObject and
NSProxy implement this method.
§Examples
Cast an NSString back and forth from NSObject.
use objc2::rc::Retained;
use objc2_foundation::{NSObject, NSString};
let obj: Retained<NSObject> = NSString::new().into_super();
let string = obj.downcast_ref::<NSString>().unwrap();
// Or with `downcast`, if we do not need the object afterwards
let string = obj.downcast::<NSString>().unwrap();Try (and fail) to cast an NSObject to an NSString.
use objc2_foundation::{NSObject, NSString};
let obj = NSObject::new();
assert!(obj.downcast_ref::<NSString>().is_none());Try to cast to an array of strings.
use objc2_foundation::{NSArray, NSObject, NSString};
let arr = NSArray::from_retained_slice(&[NSObject::new()]);
// This is invalid and doesn't type check.
let arr = arr.downcast_ref::<NSArray<NSString>>();This fails to compile, since it would require enumerating over the array to ensure that each element is of the desired type, which is a performance pitfall.
Downcast when processing each element instead.
use objc2_foundation::{NSArray, NSObject, NSString};
let arr = NSArray::from_retained_slice(&[NSObject::new()]);
for elem in arr {
if let Some(data) = elem.downcast_ref::<NSString>() {
// handle `data`
}
}Trait Implementations§
Source§impl AsRef<AnyObject> for GKDecisionTree
impl AsRef<AnyObject> for GKDecisionTree
Source§impl AsRef<GKDecisionTree> for GKDecisionTree
impl AsRef<GKDecisionTree> for GKDecisionTree
Source§impl AsRef<NSObject> for GKDecisionTree
impl AsRef<NSObject> for GKDecisionTree
Source§impl Borrow<AnyObject> for GKDecisionTree
impl Borrow<AnyObject> for GKDecisionTree
Source§impl Borrow<NSObject> for GKDecisionTree
impl Borrow<NSObject> for GKDecisionTree
Source§impl ClassType for GKDecisionTree
impl ClassType for GKDecisionTree
Source§const NAME: &'static str = "GKDecisionTree"
const NAME: &'static str = "GKDecisionTree"
Source§type ThreadKind = <<GKDecisionTree as ClassType>::Super as ClassType>::ThreadKind
type ThreadKind = <<GKDecisionTree as ClassType>::Super as ClassType>::ThreadKind
Source§impl Debug for GKDecisionTree
impl Debug for GKDecisionTree
Source§impl Deref for GKDecisionTree
impl Deref for GKDecisionTree
Source§impl Hash for GKDecisionTree
impl Hash for GKDecisionTree
Source§impl Message for GKDecisionTree
impl Message for GKDecisionTree
Source§impl NSCoding for GKDecisionTree
impl NSCoding for GKDecisionTree
Source§impl NSObjectProtocol for GKDecisionTree
impl NSObjectProtocol for GKDecisionTree
Source§fn isEqual(&self, other: Option<&AnyObject>) -> bool
fn isEqual(&self, other: Option<&AnyObject>) -> bool
Source§fn hash(&self) -> usize
fn hash(&self) -> usize
Source§fn isKindOfClass(&self, cls: &AnyClass) -> bool
fn isKindOfClass(&self, cls: &AnyClass) -> bool
Source§fn is_kind_of<T>(&self) -> bool
fn is_kind_of<T>(&self) -> bool
isKindOfClass directly, or cast your objects with AnyObject::downcast_ref